170.57/118.37 MAYBE 170.57/118.38 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 170.57/118.38 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 170.57/118.38 170.57/118.38 170.57/118.38 H-Termination with start terms of the given HASKELL could not be shown: 170.57/118.38 170.57/118.38 (0) HASKELL 170.57/118.38 (1) IFR [EQUIVALENT, 0 ms] 170.57/118.38 (2) HASKELL 170.57/118.38 (3) BR [EQUIVALENT, 0 ms] 170.57/118.38 (4) HASKELL 170.57/118.38 (5) COR [EQUIVALENT, 8 ms] 170.57/118.38 (6) HASKELL 170.57/118.38 (7) LetRed [EQUIVALENT, 0 ms] 170.57/118.38 (8) HASKELL 170.57/118.38 (9) NumRed [SOUND, 0 ms] 170.57/118.38 (10) HASKELL 170.57/118.38 (11) Narrow [SOUND, 0 ms] 170.57/118.38 (12) AND 170.57/118.38 (13) QDP 170.57/118.38 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (15) YES 170.57/118.38 (16) QDP 170.57/118.38 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (18) YES 170.57/118.38 (19) QDP 170.57/118.38 (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (21) YES 170.57/118.38 (22) QDP 170.57/118.38 (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (24) YES 170.57/118.38 (25) QDP 170.57/118.38 (26) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (27) AND 170.57/118.38 (28) QDP 170.57/118.38 (29) MRRProof [EQUIVALENT, 0 ms] 170.57/118.38 (30) QDP 170.57/118.38 (31) PisEmptyProof [EQUIVALENT, 0 ms] 170.57/118.38 (32) YES 170.57/118.38 (33) QDP 170.57/118.38 (34) QDPOrderProof [EQUIVALENT, 47 ms] 170.57/118.38 (35) QDP 170.57/118.38 (36) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (37) QDP 170.57/118.38 (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (39) YES 170.57/118.38 (40) QDP 170.57/118.38 (41) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (42) YES 170.57/118.38 (43) QDP 170.57/118.38 (44) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (45) YES 170.57/118.38 (46) QDP 170.57/118.38 (47) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (48) YES 170.57/118.38 (49) QDP 170.57/118.38 (50) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (51) YES 170.57/118.38 (52) QDP 170.57/118.38 (53) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (54) YES 170.57/118.38 (55) QDP 170.57/118.38 (56) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (57) AND 170.57/118.38 (58) QDP 170.57/118.38 (59) QDPOrderProof [EQUIVALENT, 0 ms] 170.57/118.38 (60) QDP 170.57/118.38 (61) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (62) QDP 170.57/118.38 (63) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (64) YES 170.57/118.38 (65) QDP 170.57/118.38 (66) MRRProof [EQUIVALENT, 8 ms] 170.57/118.38 (67) QDP 170.57/118.38 (68) PisEmptyProof [EQUIVALENT, 0 ms] 170.57/118.38 (69) YES 170.57/118.38 (70) QDP 170.57/118.38 (71) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (72) QDP 170.57/118.38 (73) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (74) QDP 170.57/118.38 (75) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (76) QDP 170.57/118.38 (77) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (78) QDP 170.57/118.38 (79) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (80) QDP 170.57/118.38 (81) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (82) QDP 170.57/118.38 (83) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (84) QDP 170.57/118.38 (85) InductionCalculusProof [EQUIVALENT, 0 ms] 170.57/118.38 (86) QDP 170.57/118.38 (87) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (88) QDP 170.57/118.38 (89) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (90) QDP 170.57/118.38 (91) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (92) QDP 170.57/118.38 (93) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (94) QDP 170.57/118.38 (95) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (96) QDP 170.57/118.38 (97) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (98) QDP 170.57/118.38 (99) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (100) QDP 170.57/118.38 (101) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (102) QDP 170.57/118.38 (103) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (104) QDP 170.57/118.38 (105) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (106) QDP 170.57/118.38 (107) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (108) QDP 170.57/118.38 (109) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (110) QDP 170.57/118.38 (111) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (112) QDP 170.57/118.38 (113) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (114) QDP 170.57/118.38 (115) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (116) QDP 170.57/118.38 (117) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (118) QDP 170.57/118.38 (119) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (120) QDP 170.57/118.38 (121) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (122) QDP 170.57/118.38 (123) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (124) QDP 170.57/118.38 (125) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (126) QDP 170.57/118.38 (127) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (128) QDP 170.57/118.38 (129) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (130) QDP 170.57/118.38 (131) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (132) QDP 170.57/118.38 (133) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (134) QDP 170.57/118.38 (135) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (136) QDP 170.57/118.38 (137) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (138) QDP 170.57/118.38 (139) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (140) QDP 170.57/118.38 (141) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (142) QDP 170.57/118.38 (143) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (144) QDP 170.57/118.38 (145) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (146) QDP 170.57/118.38 (147) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (148) QDP 170.57/118.38 (149) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (150) QDP 170.57/118.38 (151) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (152) QDP 170.57/118.38 (153) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (154) QDP 170.57/118.38 (155) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (156) QDP 170.57/118.38 (157) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (158) QDP 170.57/118.38 (159) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (160) QDP 170.57/118.38 (161) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (162) QDP 170.57/118.38 (163) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (164) QDP 170.57/118.38 (165) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (166) QDP 170.57/118.38 (167) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (168) QDP 170.57/118.38 (169) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (170) QDP 170.57/118.38 (171) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (172) QDP 170.57/118.38 (173) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (174) QDP 170.57/118.38 (175) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (176) QDP 170.57/118.38 (177) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (178) QDP 170.57/118.38 (179) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (180) QDP 170.57/118.38 (181) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (182) QDP 170.57/118.38 (183) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (184) QDP 170.57/118.38 (185) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (186) QDP 170.57/118.38 (187) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (188) QDP 170.57/118.38 (189) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (190) QDP 170.57/118.38 (191) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (192) QDP 170.57/118.38 (193) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (194) QDP 170.57/118.38 (195) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (196) QDP 170.57/118.38 (197) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (198) QDP 170.57/118.38 (199) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (200) QDP 170.57/118.38 (201) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (202) QDP 170.57/118.38 (203) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (204) QDP 170.57/118.38 (205) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (206) QDP 170.57/118.38 (207) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (208) QDP 170.57/118.38 (209) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (210) QDP 170.57/118.38 (211) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (212) QDP 170.57/118.38 (213) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (214) QDP 170.57/118.38 (215) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (216) QDP 170.57/118.38 (217) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (218) QDP 170.57/118.38 (219) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (220) QDP 170.57/118.38 (221) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (222) QDP 170.57/118.38 (223) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (224) QDP 170.57/118.38 (225) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (226) QDP 170.57/118.38 (227) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (228) QDP 170.57/118.38 (229) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (230) QDP 170.57/118.38 (231) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (232) QDP 170.57/118.38 (233) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (234) QDP 170.57/118.38 (235) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (236) QDP 170.57/118.38 (237) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (238) QDP 170.57/118.38 (239) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (240) QDP 170.57/118.38 (241) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (242) QDP 170.57/118.38 (243) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (244) QDP 170.57/118.38 (245) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (246) QDP 170.57/118.38 (247) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (248) QDP 170.57/118.38 (249) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (250) QDP 170.57/118.38 (251) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (252) QDP 170.57/118.38 (253) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (254) QDP 170.57/118.38 (255) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (256) QDP 170.57/118.38 (257) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (258) QDP 170.57/118.38 (259) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (260) QDP 170.57/118.38 (261) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (262) QDP 170.57/118.38 (263) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (264) QDP 170.57/118.38 (265) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (266) QDP 170.57/118.38 (267) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (268) QDP 170.57/118.38 (269) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (270) QDP 170.57/118.38 (271) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (272) QDP 170.57/118.38 (273) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (274) QDP 170.57/118.38 (275) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (276) QDP 170.57/118.38 (277) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (278) QDP 170.57/118.38 (279) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (280) QDP 170.57/118.38 (281) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (282) QDP 170.57/118.38 (283) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (284) QDP 170.57/118.38 (285) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (286) QDP 170.57/118.38 (287) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (288) QDP 170.57/118.38 (289) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (290) QDP 170.57/118.38 (291) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (292) QDP 170.57/118.38 (293) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (294) QDP 170.57/118.38 (295) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (296) QDP 170.57/118.38 (297) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (298) QDP 170.57/118.38 (299) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (300) QDP 170.57/118.38 (301) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (302) QDP 170.57/118.38 (303) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (304) QDP 170.57/118.38 (305) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (306) QDP 170.57/118.38 (307) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (308) QDP 170.57/118.38 (309) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (310) QDP 170.57/118.38 (311) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (312) QDP 170.57/118.38 (313) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (314) QDP 170.57/118.38 (315) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (316) QDP 170.57/118.38 (317) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (318) QDP 170.57/118.38 (319) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (320) QDP 170.57/118.38 (321) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (322) QDP 170.57/118.38 (323) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (324) QDP 170.57/118.38 (325) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (326) QDP 170.57/118.38 (327) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (328) QDP 170.57/118.38 (329) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (330) QDP 170.57/118.38 (331) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (332) QDP 170.57/118.38 (333) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (334) QDP 170.57/118.38 (335) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (336) QDP 170.57/118.38 (337) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (338) QDP 170.57/118.38 (339) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (340) QDP 170.57/118.38 (341) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (342) QDP 170.57/118.38 (343) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (344) QDP 170.57/118.38 (345) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (346) QDP 170.57/118.38 (347) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (348) QDP 170.57/118.38 (349) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (350) QDP 170.57/118.38 (351) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (352) QDP 170.57/118.38 (353) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (354) QDP 170.57/118.38 (355) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (356) QDP 170.57/118.38 (357) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (358) QDP 170.57/118.38 (359) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (360) QDP 170.57/118.38 (361) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (362) QDP 170.57/118.38 (363) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (364) QDP 170.57/118.38 (365) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (366) QDP 170.57/118.38 (367) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (368) QDP 170.57/118.38 (369) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (370) QDP 170.57/118.38 (371) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (372) QDP 170.57/118.38 (373) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (374) QDP 170.57/118.38 (375) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (376) QDP 170.57/118.38 (377) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (378) QDP 170.57/118.38 (379) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (380) QDP 170.57/118.38 (381) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (382) QDP 170.57/118.38 (383) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (384) QDP 170.57/118.38 (385) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (386) QDP 170.57/118.38 (387) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (388) QDP 170.57/118.38 (389) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (390) QDP 170.57/118.38 (391) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (392) QDP 170.57/118.38 (393) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (394) QDP 170.57/118.38 (395) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (396) QDP 170.57/118.38 (397) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (398) QDP 170.57/118.38 (399) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (400) QDP 170.57/118.38 (401) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (402) QDP 170.57/118.38 (403) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (404) QDP 170.57/118.38 (405) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (406) QDP 170.57/118.38 (407) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (408) QDP 170.57/118.38 (409) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (410) QDP 170.57/118.38 (411) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (412) QDP 170.57/118.38 (413) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (414) QDP 170.57/118.38 (415) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (416) QDP 170.57/118.38 (417) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (418) QDP 170.57/118.38 (419) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (420) QDP 170.57/118.38 (421) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (422) QDP 170.57/118.38 (423) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (424) QDP 170.57/118.38 (425) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (426) QDP 170.57/118.38 (427) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (428) QDP 170.57/118.38 (429) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (430) QDP 170.57/118.38 (431) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (432) QDP 170.57/118.38 (433) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (434) QDP 170.57/118.38 (435) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (436) QDP 170.57/118.38 (437) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (438) QDP 170.57/118.38 (439) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (440) QDP 170.57/118.38 (441) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (442) QDP 170.57/118.38 (443) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (444) QDP 170.57/118.38 (445) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (446) QDP 170.57/118.38 (447) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (448) QDP 170.57/118.38 (449) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (450) QDP 170.57/118.38 (451) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (452) QDP 170.57/118.38 (453) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (454) QDP 170.57/118.38 (455) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (456) QDP 170.57/118.38 (457) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (458) QDP 170.57/118.38 (459) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (460) QDP 170.57/118.38 (461) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (462) QDP 170.57/118.38 (463) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (464) QDP 170.57/118.38 (465) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (466) QDP 170.57/118.38 (467) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (468) QDP 170.57/118.38 (469) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (470) QDP 170.57/118.38 (471) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (472) QDP 170.57/118.38 (473) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (474) QDP 170.57/118.38 (475) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (476) QDP 170.57/118.38 (477) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (478) QDP 170.57/118.38 (479) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (480) QDP 170.57/118.38 (481) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (482) QDP 170.57/118.38 (483) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (484) QDP 170.57/118.38 (485) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (486) QDP 170.57/118.38 (487) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (488) QDP 170.57/118.38 (489) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (490) QDP 170.57/118.38 (491) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (492) QDP 170.57/118.38 (493) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (494) QDP 170.57/118.38 (495) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (496) QDP 170.57/118.38 (497) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (498) QDP 170.57/118.38 (499) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (500) QDP 170.57/118.38 (501) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (502) QDP 170.57/118.38 (503) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (504) QDP 170.57/118.38 (505) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (506) QDP 170.57/118.38 (507) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (508) QDP 170.57/118.38 (509) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (510) QDP 170.57/118.38 (511) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (512) QDP 170.57/118.38 (513) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (514) QDP 170.57/118.38 (515) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (516) QDP 170.57/118.38 (517) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (518) QDP 170.57/118.38 (519) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (520) QDP 170.57/118.38 (521) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (522) QDP 170.57/118.38 (523) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (524) QDP 170.57/118.38 (525) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (526) QDP 170.57/118.38 (527) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (528) QDP 170.57/118.38 (529) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (530) QDP 170.57/118.38 (531) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (532) QDP 170.57/118.38 (533) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (534) QDP 170.57/118.38 (535) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (536) QDP 170.57/118.38 (537) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (538) QDP 170.57/118.38 (539) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (540) QDP 170.57/118.38 (541) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (542) QDP 170.57/118.38 (543) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (544) QDP 170.57/118.38 (545) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (546) QDP 170.57/118.38 (547) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (548) QDP 170.57/118.38 (549) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (550) QDP 170.57/118.38 (551) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (552) QDP 170.57/118.38 (553) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (554) QDP 170.57/118.38 (555) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (556) QDP 170.57/118.38 (557) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (558) QDP 170.57/118.38 (559) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (560) QDP 170.57/118.38 (561) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (562) QDP 170.57/118.38 (563) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (564) QDP 170.57/118.38 (565) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (566) QDP 170.57/118.38 (567) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (568) QDP 170.57/118.38 (569) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (570) QDP 170.57/118.38 (571) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (572) QDP 170.57/118.38 (573) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (574) QDP 170.57/118.38 (575) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (576) QDP 170.57/118.38 (577) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (578) QDP 170.57/118.38 (579) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (580) QDP 170.57/118.38 (581) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (582) QDP 170.57/118.38 (583) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (584) QDP 170.57/118.38 (585) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (586) QDP 170.57/118.38 (587) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (588) QDP 170.57/118.38 (589) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (590) QDP 170.57/118.38 (591) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (592) QDP 170.57/118.38 (593) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (594) QDP 170.57/118.38 (595) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (596) QDP 170.57/118.38 (597) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (598) QDP 170.57/118.38 (599) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (600) QDP 170.57/118.38 (601) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (602) QDP 170.57/118.38 (603) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (604) QDP 170.57/118.38 (605) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (606) QDP 170.57/118.38 (607) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (608) QDP 170.57/118.38 (609) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (610) QDP 170.57/118.38 (611) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (612) QDP 170.57/118.38 (613) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (614) QDP 170.57/118.38 (615) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (616) QDP 170.57/118.38 (617) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (618) QDP 170.57/118.38 (619) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (620) QDP 170.57/118.38 (621) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (622) QDP 170.57/118.38 (623) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (624) QDP 170.57/118.38 (625) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (626) QDP 170.57/118.38 (627) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (628) QDP 170.57/118.38 (629) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (630) QDP 170.57/118.38 (631) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (632) QDP 170.57/118.38 (633) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (634) QDP 170.57/118.38 (635) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (636) QDP 170.57/118.38 (637) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (638) QDP 170.57/118.38 (639) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (640) QDP 170.57/118.38 (641) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (642) QDP 170.57/118.38 (643) QDPOrderProof [EQUIVALENT, 93 ms] 170.57/118.38 (644) QDP 170.57/118.38 (645) QDPOrderProof [EQUIVALENT, 76 ms] 170.57/118.38 (646) QDP 170.57/118.38 (647) InductionCalculusProof [EQUIVALENT, 0 ms] 170.57/118.38 (648) QDP 170.57/118.38 (649) QDP 170.57/118.38 (650) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (651) YES 170.57/118.38 (652) QDP 170.57/118.38 (653) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (654) YES 170.57/118.38 (655) QDP 170.57/118.38 (656) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (657) YES 170.57/118.38 (658) QDP 170.57/118.38 (659) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (660) YES 170.57/118.38 (661) QDP 170.57/118.38 (662) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (663) QDP 170.57/118.38 (664) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (665) QDP 170.57/118.38 (666) QReductionProof [EQUIVALENT, 1 ms] 170.57/118.38 (667) QDP 170.57/118.38 (668) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (669) QDP 170.57/118.38 (670) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (671) QDP 170.57/118.38 (672) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (673) QDP 170.57/118.38 (674) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (675) QDP 170.57/118.38 (676) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (677) QDP 170.57/118.38 (678) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (679) QDP 170.57/118.38 (680) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (681) QDP 170.57/118.38 (682) InductionCalculusProof [EQUIVALENT, 0 ms] 170.57/118.38 (683) QDP 170.57/118.38 (684) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (685) QDP 170.57/118.38 (686) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (687) QDP 170.57/118.38 (688) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (689) QDP 170.57/118.38 (690) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (691) QDP 170.57/118.38 (692) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (693) QDP 170.57/118.38 (694) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (695) QDP 170.57/118.38 (696) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (697) QDP 170.57/118.38 (698) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (699) QDP 170.57/118.38 (700) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (701) QDP 170.57/118.38 (702) TransformationProof [EQUIVALENT, 2 ms] 170.57/118.38 (703) QDP 170.57/118.38 (704) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (705) AND 170.57/118.38 (706) QDP 170.57/118.38 (707) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (708) QDP 170.57/118.38 (709) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (710) QDP 170.57/118.38 (711) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (712) QDP 170.57/118.38 (713) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (714) QDP 170.57/118.38 (715) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (716) QDP 170.57/118.38 (717) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (718) QDP 170.57/118.38 (719) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (720) QDP 170.57/118.38 (721) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (722) QDP 170.57/118.38 (723) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (724) AND 170.57/118.38 (725) QDP 170.57/118.38 (726) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (727) QDP 170.57/118.38 (728) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (729) QDP 170.57/118.38 (730) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (731) QDP 170.57/118.38 (732) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (733) QDP 170.57/118.38 (734) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (735) QDP 170.57/118.38 (736) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (737) QDP 170.57/118.38 (738) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (739) QDP 170.57/118.38 (740) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (741) QDP 170.57/118.38 (742) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (743) QDP 170.57/118.38 (744) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (745) QDP 170.57/118.38 (746) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (747) QDP 170.57/118.38 (748) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (749) QDP 170.57/118.38 (750) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (751) QDP 170.57/118.38 (752) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (753) QDP 170.57/118.38 (754) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (755) QDP 170.57/118.38 (756) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (757) QDP 170.57/118.38 (758) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (759) QDP 170.57/118.38 (760) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (761) QDP 170.57/118.38 (762) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (763) YES 170.57/118.38 (764) QDP 170.57/118.38 (765) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (766) QDP 170.57/118.38 (767) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (768) QDP 170.57/118.38 (769) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (770) QDP 170.57/118.38 (771) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (772) QDP 170.57/118.38 (773) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (774) QDP 170.57/118.38 (775) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (776) QDP 170.57/118.38 (777) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (778) QDP 170.57/118.38 (779) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (780) QDP 170.57/118.38 (781) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (782) QDP 170.57/118.38 (783) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (784) QDP 170.57/118.38 (785) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (786) QDP 170.57/118.38 (787) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (788) QDP 170.57/118.38 (789) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (790) QDP 170.57/118.38 (791) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (792) QDP 170.57/118.38 (793) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (794) QDP 170.57/118.38 (795) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (796) QDP 170.57/118.38 (797) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (798) QDP 170.57/118.38 (799) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (800) QDP 170.57/118.38 (801) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (802) QDP 170.57/118.38 (803) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (804) QDP 170.57/118.38 (805) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (806) QDP 170.57/118.38 (807) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (808) QDP 170.57/118.38 (809) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (810) QDP 170.57/118.38 (811) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (812) QDP 170.57/118.38 (813) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (814) QDP 170.57/118.38 (815) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (816) AND 170.57/118.38 (817) QDP 170.57/118.38 (818) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (819) QDP 170.57/118.38 (820) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (821) QDP 170.57/118.38 (822) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (823) QDP 170.57/118.38 (824) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (825) QDP 170.57/118.38 (826) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (827) QDP 170.57/118.38 (828) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (829) QDP 170.57/118.38 (830) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (831) QDP 170.57/118.38 (832) QDPOrderProof [EQUIVALENT, 595 ms] 170.57/118.38 (833) QDP 170.57/118.38 (834) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (835) TRUE 170.57/118.38 (836) QDP 170.57/118.38 (837) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (838) QDP 170.57/118.38 (839) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (840) AND 170.57/118.38 (841) QDP 170.57/118.38 (842) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (843) QDP 170.57/118.38 (844) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (845) QDP 170.57/118.38 (846) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (847) QDP 170.57/118.38 (848) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (849) QDP 170.57/118.38 (850) QDPOrderProof [EQUIVALENT, 684 ms] 170.57/118.38 (851) QDP 170.57/118.38 (852) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (853) TRUE 170.57/118.38 (854) QDP 170.57/118.38 (855) InductionCalculusProof [EQUIVALENT, 0 ms] 170.57/118.38 (856) QDP 170.57/118.38 (857) QDP 170.57/118.38 (858) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (859) QDP 170.57/118.38 (860) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (861) QDP 170.57/118.38 (862) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (863) QDP 170.57/118.38 (864) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (865) QDP 170.57/118.38 (866) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (867) QDP 170.57/118.38 (868) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (869) QDP 170.57/118.38 (870) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (871) QDP 170.57/118.38 (872) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (873) QDP 170.57/118.38 (874) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (875) AND 170.57/118.38 (876) QDP 170.57/118.38 (877) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (878) QDP 170.57/118.38 (879) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (880) QDP 170.57/118.38 (881) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (882) QDP 170.57/118.38 (883) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (884) QDP 170.57/118.38 (885) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (886) QDP 170.57/118.38 (887) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (888) QDP 170.57/118.38 (889) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (890) QDP 170.57/118.38 (891) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (892) QDP 170.57/118.38 (893) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (894) QDP 170.57/118.38 (895) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (896) QDP 170.57/118.38 (897) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (898) QDP 170.57/118.38 (899) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (900) QDP 170.57/118.38 (901) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (902) QDP 170.57/118.38 (903) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (904) QDP 170.57/118.38 (905) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (906) QDP 170.57/118.38 (907) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (908) QDP 170.57/118.38 (909) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (910) QDP 170.57/118.38 (911) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (912) QDP 170.57/118.38 (913) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.38 (914) YES 170.57/118.38 (915) QDP 170.57/118.38 (916) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (917) QDP 170.57/118.38 (918) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (919) QDP 170.57/118.38 (920) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (921) QDP 170.57/118.38 (922) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (923) QDP 170.57/118.38 (924) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (925) QDP 170.57/118.38 (926) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (927) QDP 170.57/118.38 (928) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (929) QDP 170.57/118.38 (930) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (931) QDP 170.57/118.38 (932) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (933) QDP 170.57/118.38 (934) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (935) QDP 170.57/118.38 (936) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (937) QDP 170.57/118.38 (938) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (939) QDP 170.57/118.38 (940) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (941) QDP 170.57/118.38 (942) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (943) QDP 170.57/118.38 (944) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (945) QDP 170.57/118.38 (946) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (947) QDP 170.57/118.38 (948) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (949) QDP 170.57/118.38 (950) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (951) QDP 170.57/118.38 (952) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (953) QDP 170.57/118.38 (954) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (955) QDP 170.57/118.38 (956) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (957) QDP 170.57/118.38 (958) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (959) QDP 170.57/118.38 (960) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (961) QDP 170.57/118.38 (962) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (963) QDP 170.57/118.38 (964) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (965) QDP 170.57/118.38 (966) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (967) AND 170.57/118.38 (968) QDP 170.57/118.38 (969) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (970) QDP 170.57/118.38 (971) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (972) QDP 170.57/118.38 (973) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (974) QDP 170.57/118.38 (975) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (976) QDP 170.57/118.38 (977) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (978) QDP 170.57/118.38 (979) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (980) QDP 170.57/118.38 (981) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (982) QDP 170.57/118.38 (983) QDPOrderProof [EQUIVALENT, 589 ms] 170.57/118.38 (984) QDP 170.57/118.38 (985) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (986) TRUE 170.57/118.38 (987) QDP 170.57/118.38 (988) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (989) QDP 170.57/118.38 (990) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (991) AND 170.57/118.38 (992) QDP 170.57/118.38 (993) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (994) QDP 170.57/118.38 (995) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (996) QDP 170.57/118.38 (997) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (998) QDP 170.57/118.38 (999) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1000) QDP 170.57/118.38 (1001) QDPOrderProof [EQUIVALENT, 694 ms] 170.57/118.38 (1002) QDP 170.57/118.38 (1003) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1004) TRUE 170.57/118.38 (1005) QDP 170.57/118.38 (1006) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (1007) QDP 170.57/118.38 (1008) InductionCalculusProof [EQUIVALENT, 0 ms] 170.57/118.38 (1009) QDP 170.57/118.38 (1010) QDP 170.57/118.38 (1011) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (1012) QDP 170.57/118.38 (1013) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (1014) QDP 170.57/118.38 (1015) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1016) QDP 170.57/118.38 (1017) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1018) QDP 170.57/118.38 (1019) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1020) QDP 170.57/118.38 (1021) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1022) QDP 170.57/118.38 (1023) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1024) QDP 170.57/118.38 (1025) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1026) QDP 170.57/118.38 (1027) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1028) QDP 170.57/118.38 (1029) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1030) QDP 170.57/118.38 (1031) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1032) QDP 170.57/118.38 (1033) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1034) QDP 170.57/118.38 (1035) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1036) QDP 170.57/118.38 (1037) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1038) QDP 170.57/118.38 (1039) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1040) QDP 170.57/118.38 (1041) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1042) QDP 170.57/118.38 (1043) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1044) QDP 170.57/118.38 (1045) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1046) QDP 170.57/118.38 (1047) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1048) QDP 170.57/118.38 (1049) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1050) QDP 170.57/118.38 (1051) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1052) QDP 170.57/118.38 (1053) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1054) QDP 170.57/118.38 (1055) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1056) QDP 170.57/118.38 (1057) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1058) QDP 170.57/118.38 (1059) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1060) QDP 170.57/118.38 (1061) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1062) QDP 170.57/118.38 (1063) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1064) QDP 170.57/118.38 (1065) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1066) AND 170.57/118.38 (1067) QDP 170.57/118.38 (1068) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.38 (1069) QDP 170.57/118.38 (1070) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.38 (1071) QDP 170.57/118.38 (1072) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1073) QDP 170.57/118.38 (1074) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1075) QDP 170.57/118.38 (1076) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1077) QDP 170.57/118.38 (1078) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1079) QDP 170.57/118.38 (1080) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1081) QDP 170.57/118.38 (1082) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.38 (1083) QDP 170.57/118.38 (1084) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1085) QDP 170.57/118.38 (1086) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1087) QDP 170.57/118.38 (1088) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.38 (1089) QDP 170.57/118.39 (1090) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.39 (1091) QDP 170.57/118.39 (1092) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.39 (1093) QDP 170.57/118.39 (1094) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.39 (1095) QDP 170.57/118.39 (1096) DependencyGraphProof [EQUIVALENT, 0 ms] 170.57/118.39 (1097) QDP 170.57/118.39 (1098) TransformationProof [EQUIVALENT, 0 ms] 170.57/118.39 (1099) QDP 170.57/118.39 (1100) QDPSizeChangeProof [EQUIVALENT, 0 ms] 170.57/118.39 (1101) YES 170.57/118.39 (1102) QDP 170.57/118.39 (1103) UsableRulesProof [EQUIVALENT, 0 ms] 170.57/118.39 (1104) QDP 170.57/118.39 (1105) QReductionProof [EQUIVALENT, 0 ms] 170.57/118.39 (1106) QDP 170.57/118.39 (1107) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1108) QDP 172.33/118.90 (1109) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1110) QDP 172.33/118.90 (1111) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1112) QDP 172.33/118.90 (1113) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1114) QDP 172.33/118.90 (1115) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1116) QDP 172.33/118.90 (1117) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1118) QDP 172.33/118.90 (1119) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1120) QDP 172.33/118.90 (1121) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1122) QDP 172.33/118.90 (1123) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1124) QDP 172.33/118.90 (1125) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1126) QDP 172.33/118.90 (1127) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1128) QDP 172.33/118.90 (1129) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1130) QDP 172.33/118.90 (1131) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1132) QDP 172.33/118.90 (1133) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1134) QDP 172.33/118.90 (1135) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1136) QDP 172.33/118.90 (1137) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1138) QDP 172.33/118.90 (1139) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1140) QDP 172.33/118.90 (1141) QDPSizeChangeProof [EQUIVALENT, 0 ms] 172.33/118.90 (1142) YES 172.33/118.90 (1143) QDP 172.33/118.90 (1144) UsableRulesProof [EQUIVALENT, 0 ms] 172.33/118.90 (1145) QDP 172.33/118.90 (1146) QReductionProof [EQUIVALENT, 0 ms] 172.33/118.90 (1147) QDP 172.33/118.90 (1148) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1149) QDP 172.33/118.90 (1150) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1151) QDP 172.33/118.90 (1152) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1153) QDP 172.33/118.90 (1154) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1155) QDP 172.33/118.90 (1156) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1157) QDP 172.33/118.90 (1158) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1159) QDP 172.33/118.90 (1160) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1161) QDP 172.33/118.90 (1162) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1163) QDP 172.33/118.90 (1164) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1165) QDP 172.33/118.90 (1166) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1167) QDP 172.33/118.90 (1168) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1169) QDP 172.33/118.90 (1170) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1171) QDP 172.33/118.90 (1172) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1173) QDP 172.33/118.90 (1174) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1175) QDP 172.33/118.90 (1176) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1177) QDP 172.33/118.90 (1178) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1179) QDP 172.33/118.90 (1180) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1181) QDP 172.33/118.90 (1182) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1183) QDP 172.33/118.90 (1184) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1185) QDP 172.33/118.90 (1186) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1187) QDP 172.33/118.90 (1188) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1189) QDP 172.33/118.90 (1190) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1191) QDP 172.33/118.90 (1192) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1193) QDP 172.33/118.90 (1194) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1195) QDP 172.33/118.90 (1196) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1197) QDP 172.33/118.90 (1198) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1199) QDP 172.33/118.90 (1200) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1201) QDP 172.33/118.90 (1202) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1203) QDP 172.33/118.90 (1204) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1205) QDP 172.33/118.90 (1206) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1207) AND 172.33/118.90 (1208) QDP 172.33/118.90 (1209) UsableRulesProof [EQUIVALENT, 0 ms] 172.33/118.90 (1210) QDP 172.33/118.90 (1211) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1212) QDP 172.33/118.90 (1213) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1214) QDP 172.33/118.90 (1215) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1216) QDP 172.33/118.90 (1217) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1218) QDP 172.33/118.90 (1219) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1220) QDP 172.33/118.90 (1221) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1222) QDP 172.33/118.90 (1223) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1224) QDP 172.33/118.90 (1225) InductionCalculusProof [EQUIVALENT, 0 ms] 172.33/118.90 (1226) QDP 172.33/118.90 (1227) QDP 172.33/118.90 (1228) UsableRulesProof [EQUIVALENT, 0 ms] 172.33/118.90 (1229) QDP 172.33/118.90 (1230) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1231) QDP 172.33/118.90 (1232) UsableRulesProof [EQUIVALENT, 0 ms] 172.33/118.90 (1233) QDP 172.33/118.90 (1234) QDPOrderProof [EQUIVALENT, 791 ms] 172.33/118.90 (1235) QDP 172.33/118.90 (1236) DependencyGraphProof [EQUIVALENT, 0 ms] 172.33/118.90 (1237) TRUE 172.33/118.90 (1238) QDP 172.33/118.90 (1239) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1240) QDP 172.33/118.90 (1241) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1242) QDP 172.33/118.90 (1243) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1244) QDP 172.33/118.90 (1245) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1246) QDP 172.33/118.90 (1247) TransformationProof [EQUIVALENT, 0 ms] 172.33/118.90 (1248) QDP 172.97/119.04 (1249) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1250) QDP 172.97/119.04 (1251) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1252) QDP 172.97/119.04 (1253) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1254) QDP 172.97/119.04 (1255) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1256) QDP 172.97/119.04 (1257) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1258) QDP 172.97/119.04 (1259) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1260) QDP 172.97/119.04 (1261) DependencyGraphProof [EQUIVALENT, 0 ms] 172.97/119.04 (1262) QDP 172.97/119.04 (1263) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1264) QDP 172.97/119.04 (1265) DependencyGraphProof [EQUIVALENT, 0 ms] 172.97/119.04 (1266) QDP 172.97/119.04 (1267) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1268) QDP 172.97/119.04 (1269) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1270) QDP 172.97/119.04 (1271) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1272) QDP 172.97/119.04 (1273) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1274) QDP 172.97/119.04 (1275) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1276) QDP 172.97/119.04 (1277) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1278) QDP 172.97/119.04 (1279) DependencyGraphProof [EQUIVALENT, 0 ms] 172.97/119.04 (1280) AND 172.97/119.04 (1281) QDP 172.97/119.04 (1282) UsableRulesProof [EQUIVALENT, 0 ms] 172.97/119.04 (1283) QDP 172.97/119.04 (1284) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1285) QDP 172.97/119.04 (1286) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1287) QDP 172.97/119.04 (1288) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1289) QDP 172.97/119.04 (1290) TransformationProof [EQUIVALENT, 0 ms] 172.97/119.04 (1291) QDP 172.97/119.04 (1292) InductionCalculusProof [EQUIVALENT, 0 ms] 172.97/119.04 (1293) QDP 172.97/119.04 (1294) QDP 172.97/119.04 (1295) UsableRulesProof [EQUIVALENT, 0 ms] 172.97/119.04 (1296) QDP 172.97/119.04 (1297) QDPOrderProof [EQUIVALENT, 1294 ms] 172.97/119.04 (1298) QDP 172.97/119.04 (1299) DependencyGraphProof [EQUIVALENT, 0 ms] 172.97/119.04 (1300) TRUE 172.97/119.04 (1301) QDP 172.97/119.04 (1302) InductionCalculusProof [EQUIVALENT, 0 ms] 172.97/119.04 (1303) QDP 172.97/119.04 (1304) QDP 172.97/119.04 (1305) QDPSizeChangeProof [EQUIVALENT, 0 ms] 172.97/119.04 (1306) YES 172.97/119.04 (1307) QDP 172.97/119.04 (1308) QDPSizeChangeProof [EQUIVALENT, 0 ms] 172.97/119.04 (1309) YES 172.97/119.04 (1310) Narrow [COMPLETE, 0 ms] 172.97/119.04 (1311) QDP 172.97/119.04 (1312) PisEmptyProof [EQUIVALENT, 0 ms] 172.97/119.04 (1313) YES 172.97/119.04 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (0) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (1) IFR (EQUIVALENT) 172.97/119.04 If Reductions: 172.97/119.04 The following If expression 172.97/119.04 "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" 172.97/119.04 is transformed to 172.97/119.04 "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); 172.97/119.04 primDivNatS0 x y False = Zero; 172.97/119.04 " 172.97/119.04 The following If expression 172.97/119.04 "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" 172.97/119.04 is transformed to 172.97/119.04 "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); 172.97/119.04 primModNatS0 x y False = Succ x; 172.97/119.04 " 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (2) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (3) BR (EQUIVALENT) 172.97/119.04 Replaced joker patterns by fresh variables and removed binding patterns. 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (4) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (5) COR (EQUIVALENT) 172.97/119.04 Cond Reductions: 172.97/119.04 The following Function with conditions 172.97/119.04 "absReal x|x >= 0x|otherwise`negate` x; 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "absReal x = absReal2 x; 172.97/119.04 " 172.97/119.04 "absReal1 x True = x; 172.97/119.04 absReal1 x False = absReal0 x otherwise; 172.97/119.04 " 172.97/119.04 "absReal0 x True = `negate` x; 172.97/119.04 " 172.97/119.04 "absReal2 x = absReal1 x (x >= 0); 172.97/119.04 " 172.97/119.04 The following Function with conditions 172.97/119.04 "gcd' x 0 = x; 172.97/119.04 gcd' x y = gcd' y (x `rem` y); 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "gcd' x xz = gcd'2 x xz; 172.97/119.04 gcd' x y = gcd'0 x y; 172.97/119.04 " 172.97/119.04 "gcd'0 x y = gcd' y (x `rem` y); 172.97/119.04 " 172.97/119.04 "gcd'1 True x xz = x; 172.97/119.04 gcd'1 yu yv yw = gcd'0 yv yw; 172.97/119.04 " 172.97/119.04 "gcd'2 x xz = gcd'1 (xz == 0) x xz; 172.97/119.04 gcd'2 yx yy = gcd'0 yx yy; 172.97/119.04 " 172.97/119.04 The following Function with conditions 172.97/119.04 "gcd 0 0 = error []; 172.97/119.04 gcd x y = gcd' (abs x) (abs y) where { 172.97/119.04 gcd' x 0 = x; 172.97/119.04 gcd' x y = gcd' y (x `rem` y); 172.97/119.04 } 172.97/119.04 ; 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "gcd yz zu = gcd3 yz zu; 172.97/119.04 gcd x y = gcd0 x y; 172.97/119.04 " 172.97/119.04 "gcd0 x y = gcd' (abs x) (abs y) where { 172.97/119.04 gcd' x xz = gcd'2 x xz; 172.97/119.04 gcd' x y = gcd'0 x y; 172.97/119.04 ; 172.97/119.04 gcd'0 x y = gcd' y (x `rem` y); 172.97/119.04 ; 172.97/119.04 gcd'1 True x xz = x; 172.97/119.04 gcd'1 yu yv yw = gcd'0 yv yw; 172.97/119.04 ; 172.97/119.04 gcd'2 x xz = gcd'1 (xz == 0) x xz; 172.97/119.04 gcd'2 yx yy = gcd'0 yx yy; 172.97/119.04 } 172.97/119.04 ; 172.97/119.04 " 172.97/119.04 "gcd1 True yz zu = error []; 172.97/119.04 gcd1 zv zw zx = gcd0 zw zx; 172.97/119.04 " 172.97/119.04 "gcd2 True yz zu = gcd1 (zu == 0) yz zu; 172.97/119.04 gcd2 zy zz vuu = gcd0 zz vuu; 172.97/119.04 " 172.97/119.04 "gcd3 yz zu = gcd2 (yz == 0) yz zu; 172.97/119.04 gcd3 vuv vuw = gcd0 vuv vuw; 172.97/119.04 " 172.97/119.04 The following Function with conditions 172.97/119.04 "undefined |Falseundefined; 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "undefined = undefined1; 172.97/119.04 " 172.97/119.04 "undefined0 True = undefined; 172.97/119.04 " 172.97/119.04 "undefined1 = undefined0 False; 172.97/119.04 " 172.97/119.04 The following Function with conditions 172.97/119.04 "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { 172.97/119.04 d = gcd x y; 172.97/119.04 } 172.97/119.04 ; 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "reduce x y = reduce2 x y; 172.97/119.04 " 172.97/119.04 "reduce2 x y = reduce1 x y (y == 0) where { 172.97/119.04 d = gcd x y; 172.97/119.04 ; 172.97/119.04 reduce0 x y True = x `quot` d :% (y `quot` d); 172.97/119.04 ; 172.97/119.04 reduce1 x y True = error []; 172.97/119.04 reduce1 x y False = reduce0 x y otherwise; 172.97/119.04 } 172.97/119.04 ; 172.97/119.04 " 172.97/119.04 The following Function with conditions 172.97/119.04 "signumReal x|x == 00|x > 01|otherwise-1; 172.97/119.04 " 172.97/119.04 is transformed to 172.97/119.04 "signumReal x = signumReal3 x; 172.97/119.04 " 172.97/119.04 "signumReal0 x True = -1; 172.97/119.04 " 172.97/119.04 "signumReal2 x True = 0; 172.97/119.04 signumReal2 x False = signumReal1 x (x > 0); 172.97/119.04 " 172.97/119.04 "signumReal1 x True = 1; 172.97/119.04 signumReal1 x False = signumReal0 x otherwise; 172.97/119.04 " 172.97/119.04 "signumReal3 x = signumReal2 x (x == 0); 172.97/119.04 " 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (6) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (7) LetRed (EQUIVALENT) 172.97/119.04 Let/Where Reductions: 172.97/119.04 The bindings of the following Let/Where expression 172.97/119.04 "gcd' (abs x) (abs y) where { 172.97/119.04 gcd' x xz = gcd'2 x xz; 172.97/119.04 gcd' x y = gcd'0 x y; 172.97/119.04 ; 172.97/119.04 gcd'0 x y = gcd' y (x `rem` y); 172.97/119.04 ; 172.97/119.04 gcd'1 True x xz = x; 172.97/119.04 gcd'1 yu yv yw = gcd'0 yv yw; 172.97/119.04 ; 172.97/119.04 gcd'2 x xz = gcd'1 (xz == 0) x xz; 172.97/119.04 gcd'2 yx yy = gcd'0 yx yy; 172.97/119.04 } 172.97/119.04 " 172.97/119.04 are unpacked to the following functions on top level 172.97/119.04 "gcd0Gcd'1 True x xz = x; 172.97/119.04 gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; 172.97/119.04 " 172.97/119.04 "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); 172.97/119.04 " 172.97/119.04 "gcd0Gcd' x xz = gcd0Gcd'2 x xz; 172.97/119.04 gcd0Gcd' x y = gcd0Gcd'0 x y; 172.97/119.04 " 172.97/119.04 "gcd0Gcd'2 x xz = gcd0Gcd'1 (xz == 0) x xz; 172.97/119.04 gcd0Gcd'2 yx yy = gcd0Gcd'0 yx yy; 172.97/119.04 " 172.97/119.04 The bindings of the following Let/Where expression 172.97/119.04 "reduce1 x y (y == 0) where { 172.97/119.04 d = gcd x y; 172.97/119.04 ; 172.97/119.04 reduce0 x y True = x `quot` d :% (y `quot` d); 172.97/119.04 ; 172.97/119.04 reduce1 x y True = error []; 172.97/119.04 reduce1 x y False = reduce0 x y otherwise; 172.97/119.04 } 172.97/119.04 " 172.97/119.04 are unpacked to the following functions on top level 172.97/119.04 "reduce2Reduce1 vux vuy x y True = error []; 172.97/119.04 reduce2Reduce1 vux vuy x y False = reduce2Reduce0 vux vuy x y otherwise; 172.97/119.04 " 172.97/119.04 "reduce2D vux vuy = gcd vux vuy; 172.97/119.04 " 172.97/119.04 "reduce2Reduce0 vux vuy x y True = x `quot` reduce2D vux vuy :% (y `quot` reduce2D vux vuy); 172.97/119.04 " 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (8) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (9) NumRed (SOUND) 172.97/119.04 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (10) 172.97/119.04 Obligation: 172.97/119.04 mainModule Main 172.97/119.04 module Main where { 172.97/119.04 import qualified Prelude; 172.97/119.04 } 172.97/119.04 172.97/119.04 ---------------------------------------- 172.97/119.04 172.97/119.04 (11) Narrow (SOUND) 172.97/119.04 Haskell To QDPs 172.97/119.04 172.97/119.04 digraph dp_graph { 172.97/119.04 node [outthreshold=100, inthreshold=100];1[label="(/)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 172.97/119.04 3[label="(/) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 172.97/119.04 4[label="(/) vuz3 vuz4",fontsize=16,color="blue",shape="box"];5345[label="/ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 5345[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5345 -> 5[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5346[label="/ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 5346[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5346 -> 6[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5347[label="/ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 5347[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5347 -> 7[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 8[label="",style="solid", color="black", weight=3]; 172.97/119.04 6[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 172.97/119.04 7[label="(/) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5348[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];7 -> 5348[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5348 -> 10[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 8[label="primDivFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5349[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];8 -> 5349[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5349 -> 11[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 9[label="primDivDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5350[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];9 -> 5350[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5350 -> 12[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 10[label="(/) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5351[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 5351[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5351 -> 13[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 11[label="primDivFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5352[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 5352[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5352 -> 14[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 12[label="primDivDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5353[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];12 -> 5353[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5353 -> 15[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 13[label="(/) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];13 -> 16[label="",style="solid", color="black", weight=3]; 172.97/119.04 14[label="primDivFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];14 -> 17[label="",style="solid", color="black", weight=3]; 172.97/119.04 15[label="primDivDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];15 -> 18[label="",style="solid", color="black", weight=3]; 172.97/119.04 16[label="vuz30 * vuz41 % (vuz31 * vuz40)",fontsize=16,color="black",shape="box"];16 -> 19[label="",style="solid", color="black", weight=3]; 172.97/119.04 17[label="Float (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];17 -> 20[label="",style="dashed", color="green", weight=3]; 172.97/119.04 17 -> 21[label="",style="dashed", color="green", weight=3]; 172.97/119.04 18[label="Double (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];18 -> 22[label="",style="dashed", color="green", weight=3]; 172.97/119.04 18 -> 23[label="",style="dashed", color="green", weight=3]; 172.97/119.04 19[label="reduce (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 172.97/119.04 20[label="vuz30 * vuz41",fontsize=16,color="black",shape="triangle"];20 -> 25[label="",style="solid", color="black", weight=3]; 172.97/119.04 21 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 21[label="vuz31 * vuz40",fontsize=16,color="magenta"];21 -> 26[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 21 -> 27[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 22 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 22[label="vuz30 * vuz41",fontsize=16,color="magenta"];22 -> 28[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 22 -> 29[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 23 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 23[label="vuz31 * vuz40",fontsize=16,color="magenta"];23 -> 30[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 23 -> 31[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 24[label="reduce2 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 172.97/119.04 25[label="primMulInt vuz30 vuz41",fontsize=16,color="burlywood",shape="triangle"];5354[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5354[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5354 -> 33[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5355[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5355[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5355 -> 34[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 26[label="vuz40",fontsize=16,color="green",shape="box"];27[label="vuz31",fontsize=16,color="green",shape="box"];28[label="vuz41",fontsize=16,color="green",shape="box"];29[label="vuz30",fontsize=16,color="green",shape="box"];30[label="vuz40",fontsize=16,color="green",shape="box"];31[label="vuz31",fontsize=16,color="green",shape="box"];32 -> 35[label="",style="dashed", color="red", weight=0]; 172.97/119.04 32[label="reduce2Reduce1 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (abs (vuz31 * vuz40) == fromInt (Pos Zero))",fontsize=16,color="magenta"];32 -> 36[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 32 -> 37[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 32 -> 38[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 32 -> 39[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 32 -> 40[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 33[label="primMulInt (Pos vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5356[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5356[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5356 -> 41[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5357[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5357[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5357 -> 42[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 34[label="primMulInt (Neg vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5358[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5358[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5358 -> 43[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5359[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5359[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5359 -> 44[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 36[label="vuz30",fontsize=16,color="green",shape="box"];37[label="vuz41",fontsize=16,color="green",shape="box"];38[label="vuz40",fontsize=16,color="green",shape="box"];39[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];5360[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5360[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5360 -> 45[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5361[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5361[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5361 -> 46[label="",style="solid", color="blue", weight=3]; 172.97/119.04 40[label="vuz31",fontsize=16,color="green",shape="box"];35[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) vuz15",fontsize=16,color="burlywood",shape="triangle"];5362[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];35 -> 5362[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5362 -> 47[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5363[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];35 -> 5363[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5363 -> 48[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 41[label="primMulInt (Pos vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];41 -> 49[label="",style="solid", color="black", weight=3]; 172.97/119.04 42[label="primMulInt (Pos vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];42 -> 50[label="",style="solid", color="black", weight=3]; 172.97/119.04 43[label="primMulInt (Neg vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];43 -> 51[label="",style="solid", color="black", weight=3]; 172.97/119.04 44[label="primMulInt (Neg vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];44 -> 52[label="",style="solid", color="black", weight=3]; 172.97/119.04 45[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];45 -> 53[label="",style="solid", color="black", weight=3]; 172.97/119.04 46 -> 1690[label="",style="dashed", color="red", weight=0]; 172.97/119.04 46[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="magenta"];46 -> 1691[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 46 -> 1692[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 47[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) False",fontsize=16,color="black",shape="box"];47 -> 56[label="",style="solid", color="black", weight=3]; 172.97/119.04 48[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];48 -> 57[label="",style="solid", color="black", weight=3]; 172.97/119.04 49[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];49 -> 58[label="",style="dashed", color="green", weight=3]; 172.97/119.04 50[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];50 -> 59[label="",style="dashed", color="green", weight=3]; 172.97/119.04 51[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];51 -> 60[label="",style="dashed", color="green", weight=3]; 172.97/119.04 52[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];52 -> 61[label="",style="dashed", color="green", weight=3]; 172.97/119.04 53[label="absReal (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];53 -> 62[label="",style="solid", color="black", weight=3]; 172.97/119.04 1691 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.04 1691[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1692 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.04 1692[label="abs (vuz31 * vuz40)",fontsize=16,color="magenta"];1692 -> 1698[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1690[label="vuz101 == vuz100",fontsize=16,color="black",shape="triangle"];1690 -> 1699[label="",style="solid", color="black", weight=3]; 172.97/119.04 56[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) otherwise",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 172.97/119.04 57[label="error []",fontsize=16,color="black",shape="box"];57 -> 67[label="",style="solid", color="black", weight=3]; 172.97/119.04 58[label="primMulNat vuz300 vuz410",fontsize=16,color="burlywood",shape="triangle"];5364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];58 -> 5364[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5364 -> 68[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 5365[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5365 -> 69[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 59 -> 58[label="",style="dashed", color="red", weight=0]; 172.97/119.04 59[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];59 -> 70[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 60 -> 58[label="",style="dashed", color="red", weight=0]; 172.97/119.04 60[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];60 -> 71[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 61 -> 58[label="",style="dashed", color="red", weight=0]; 172.97/119.04 61[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];61 -> 72[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 61 -> 73[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 62[label="absReal2 (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];62 -> 74[label="",style="solid", color="black", weight=3]; 172.97/119.04 338[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];338 -> 375[label="",style="solid", color="black", weight=3]; 172.97/119.04 1698 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 1698[label="vuz31 * vuz40",fontsize=16,color="magenta"];1698 -> 1742[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1698 -> 1743[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 123[label="abs vuz25",fontsize=16,color="black",shape="triangle"];123 -> 148[label="",style="solid", color="black", weight=3]; 172.97/119.04 1699[label="primEqInt vuz101 vuz100",fontsize=16,color="burlywood",shape="triangle"];5366[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5366[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5366 -> 1744[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5367[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5367[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5367 -> 1745[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 66[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];66 -> 76[label="",style="solid", color="black", weight=3]; 172.97/119.04 67[label="error []",fontsize=16,color="red",shape="box"];68[label="primMulNat (Succ vuz3000) vuz410",fontsize=16,color="burlywood",shape="box"];5368[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];68 -> 5368[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5368 -> 77[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5369[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];68 -> 5369[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5369 -> 78[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 69[label="primMulNat Zero vuz410",fontsize=16,color="burlywood",shape="box"];5370[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];69 -> 5370[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5370 -> 79[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5371[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 5371[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5371 -> 80[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 70[label="vuz410",fontsize=16,color="green",shape="box"];71[label="vuz300",fontsize=16,color="green",shape="box"];72[label="vuz300",fontsize=16,color="green",shape="box"];73[label="vuz410",fontsize=16,color="green",shape="box"];74[label="absReal1 (vuz31 * vuz40) (vuz31 * vuz40 >= fromInt (Pos Zero)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];74 -> 81[label="",style="solid", color="black", weight=3]; 172.97/119.04 375[label="Pos Zero",fontsize=16,color="green",shape="box"];1742[label="vuz40",fontsize=16,color="green",shape="box"];1743[label="vuz31",fontsize=16,color="green",shape="box"];148[label="absReal vuz25",fontsize=16,color="black",shape="box"];148 -> 169[label="",style="solid", color="black", weight=3]; 172.97/119.04 1744[label="primEqInt (Pos vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5372[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5372[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5372 -> 1814[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5373[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5373[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5373 -> 1815[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1745[label="primEqInt (Neg vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5374[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5374[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5374 -> 1816[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5375[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5375[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5375 -> 1817[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 76[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) :% (abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)))",fontsize=16,color="green",shape="box"];76 -> 83[label="",style="dashed", color="green", weight=3]; 172.97/119.04 76 -> 84[label="",style="dashed", color="green", weight=3]; 172.97/119.04 77[label="primMulNat (Succ vuz3000) (Succ vuz4100)",fontsize=16,color="black",shape="box"];77 -> 85[label="",style="solid", color="black", weight=3]; 172.97/119.04 78[label="primMulNat (Succ vuz3000) Zero",fontsize=16,color="black",shape="box"];78 -> 86[label="",style="solid", color="black", weight=3]; 172.97/119.04 79[label="primMulNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];79 -> 87[label="",style="solid", color="black", weight=3]; 172.97/119.04 80[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];80 -> 88[label="",style="solid", color="black", weight=3]; 172.97/119.04 81[label="absReal1 (vuz31 * vuz40) (compare (vuz31 * vuz40) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];81 -> 89[label="",style="solid", color="black", weight=3]; 172.97/119.04 169[label="absReal2 vuz25",fontsize=16,color="black",shape="box"];169 -> 190[label="",style="solid", color="black", weight=3]; 172.97/119.04 1814[label="primEqInt (Pos (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5376[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5376[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5376 -> 1879[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5377[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5377[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5377 -> 1880[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1815[label="primEqInt (Pos Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5378[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5378[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5378 -> 1881[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5379[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5379[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5379 -> 1882[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1816[label="primEqInt (Neg (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5380[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5380[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5380 -> 1883[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5381[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5381[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5381 -> 1884[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1817[label="primEqInt (Neg Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5382[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5382[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5382 -> 1885[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5383[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5383[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5383 -> 1886[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 83[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5384[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 5384[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5384 -> 91[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5385[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 5385[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5385 -> 92[label="",style="solid", color="blue", weight=3]; 172.97/119.04 84[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5386[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 5386[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5386 -> 93[label="",style="solid", color="blue", weight=3]; 172.97/119.04 5387[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 5387[label="",style="solid", color="blue", weight=9]; 172.97/119.04 5387 -> 94[label="",style="solid", color="blue", weight=3]; 172.97/119.04 85 -> 95[label="",style="dashed", color="red", weight=0]; 172.97/119.04 85[label="primPlusNat (primMulNat vuz3000 (Succ vuz4100)) (Succ vuz4100)",fontsize=16,color="magenta"];85 -> 96[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 86[label="Zero",fontsize=16,color="green",shape="box"];87[label="Zero",fontsize=16,color="green",shape="box"];88[label="Zero",fontsize=16,color="green",shape="box"];89[label="absReal1 (vuz31 * vuz40) (not (compare (vuz31 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5388[label="vuz31/Integer vuz310",fontsize=10,color="white",style="solid",shape="box"];89 -> 5388[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5388 -> 97[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 190[label="absReal1 vuz25 (vuz25 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];190 -> 205[label="",style="solid", color="black", weight=3]; 172.97/119.04 1879[label="primEqInt (Pos (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5389[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5389[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5389 -> 1952[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5390[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5390[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5390 -> 1953[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1880[label="primEqInt (Pos (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="black",shape="box"];1880 -> 1954[label="",style="solid", color="black", weight=3]; 172.97/119.04 1881[label="primEqInt (Pos Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5391[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5391[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5391 -> 1955[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5392[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5392[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5392 -> 1956[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1882[label="primEqInt (Pos Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5393[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5393[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5393 -> 1957[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5394[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5394[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5394 -> 1958[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1883[label="primEqInt (Neg (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="black",shape="box"];1883 -> 1959[label="",style="solid", color="black", weight=3]; 172.97/119.04 1884[label="primEqInt (Neg (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5395[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5395[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5395 -> 1960[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5396[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5396[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5396 -> 1961[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1885[label="primEqInt (Neg Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5397[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5397[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5397 -> 1962[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5398[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5398[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5398 -> 1963[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 1886[label="primEqInt (Neg Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5399[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5399[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5399 -> 1964[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5400[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5400[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5400 -> 1965[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 91 -> 99[label="",style="dashed", color="red", weight=0]; 172.97/119.04 91[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];91 -> 100[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 91 -> 101[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 91 -> 102[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 92[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5401[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];92 -> 5401[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5401 -> 106[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 93 -> 99[label="",style="dashed", color="red", weight=0]; 172.97/119.04 93[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];93 -> 103[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 93 -> 104[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 93 -> 105[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 94[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];94 -> 107[label="",style="solid", color="black", weight=3]; 172.97/119.04 96 -> 58[label="",style="dashed", color="red", weight=0]; 172.97/119.04 96[label="primMulNat vuz3000 (Succ vuz4100)",fontsize=16,color="magenta"];96 -> 108[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 96 -> 109[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 95[label="primPlusNat vuz17 (Succ vuz4100)",fontsize=16,color="burlywood",shape="triangle"];5402[label="vuz17/Succ vuz170",fontsize=10,color="white",style="solid",shape="box"];95 -> 5402[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5402 -> 110[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5403[label="vuz17/Zero",fontsize=10,color="white",style="solid",shape="box"];95 -> 5403[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5403 -> 111[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 97[label="absReal1 (Integer vuz310 * vuz40) (not (compare (Integer vuz310 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5404[label="vuz40/Integer vuz400",fontsize=10,color="white",style="solid",shape="box"];97 -> 5404[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5404 -> 112[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 205[label="absReal1 vuz25 (compare vuz25 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];205 -> 221[label="",style="solid", color="black", weight=3]; 172.97/119.04 1952[label="primEqInt (Pos (Succ vuz10100)) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1952 -> 1975[label="",style="solid", color="black", weight=3]; 172.97/119.04 1953[label="primEqInt (Pos (Succ vuz10100)) (Pos Zero)",fontsize=16,color="black",shape="box"];1953 -> 1976[label="",style="solid", color="black", weight=3]; 172.97/119.04 1954[label="False",fontsize=16,color="green",shape="box"];1955[label="primEqInt (Pos Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1955 -> 1977[label="",style="solid", color="black", weight=3]; 172.97/119.04 1956[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1956 -> 1978[label="",style="solid", color="black", weight=3]; 172.97/119.04 1957[label="primEqInt (Pos Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1957 -> 1979[label="",style="solid", color="black", weight=3]; 172.97/119.04 1958[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1958 -> 1980[label="",style="solid", color="black", weight=3]; 172.97/119.04 1959[label="False",fontsize=16,color="green",shape="box"];1960[label="primEqInt (Neg (Succ vuz10100)) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1960 -> 1981[label="",style="solid", color="black", weight=3]; 172.97/119.04 1961[label="primEqInt (Neg (Succ vuz10100)) (Neg Zero)",fontsize=16,color="black",shape="box"];1961 -> 1982[label="",style="solid", color="black", weight=3]; 172.97/119.04 1962[label="primEqInt (Neg Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1962 -> 1983[label="",style="solid", color="black", weight=3]; 172.97/119.04 1963[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1963 -> 1984[label="",style="solid", color="black", weight=3]; 172.97/119.04 1964[label="primEqInt (Neg Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1964 -> 1985[label="",style="solid", color="black", weight=3]; 172.97/119.04 1965[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1965 -> 1986[label="",style="solid", color="black", weight=3]; 172.97/119.04 100 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 100[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];100 -> 114[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 100 -> 115[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 101 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 101[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];101 -> 116[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 101 -> 117[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 102 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 102[label="vuz13 * vuz14",fontsize=16,color="magenta"];102 -> 118[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 102 -> 119[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 99[label="vuz18 `quot` reduce2D vuz19 (abs vuz21)",fontsize=16,color="black",shape="triangle"];99 -> 120[label="",style="solid", color="black", weight=3]; 172.97/119.04 106[label="Integer vuz110 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5405[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];106 -> 5405[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5405 -> 125[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 103 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 103[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];103 -> 121[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 103 -> 122[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 104 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.04 104[label="abs (vuz13 * vuz14)",fontsize=16,color="magenta"];104 -> 124[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 105 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 105[label="vuz13 * vuz14",fontsize=16,color="magenta"];105 -> 126[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 105 -> 127[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 107[label="absReal (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];107 -> 128[label="",style="solid", color="black", weight=3]; 172.97/119.04 108[label="vuz3000",fontsize=16,color="green",shape="box"];109[label="Succ vuz4100",fontsize=16,color="green",shape="box"];110[label="primPlusNat (Succ vuz170) (Succ vuz4100)",fontsize=16,color="black",shape="box"];110 -> 129[label="",style="solid", color="black", weight=3]; 172.97/119.04 111[label="primPlusNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];111 -> 130[label="",style="solid", color="black", weight=3]; 172.97/119.04 112[label="absReal1 (Integer vuz310 * Integer vuz400) (not (compare (Integer vuz310 * Integer vuz400) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];112 -> 131[label="",style="solid", color="black", weight=3]; 172.97/119.04 221[label="absReal1 vuz25 (not (compare vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];221 -> 237[label="",style="solid", color="black", weight=3]; 172.97/119.04 1975 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.04 1975[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1975 -> 2006[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1975 -> 2007[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1976[label="False",fontsize=16,color="green",shape="box"];1977[label="False",fontsize=16,color="green",shape="box"];1978[label="True",fontsize=16,color="green",shape="box"];1979[label="False",fontsize=16,color="green",shape="box"];1980[label="True",fontsize=16,color="green",shape="box"];1981 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.04 1981[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1981 -> 2008[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1981 -> 2009[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 1982[label="False",fontsize=16,color="green",shape="box"];1983[label="False",fontsize=16,color="green",shape="box"];1984[label="True",fontsize=16,color="green",shape="box"];1985[label="False",fontsize=16,color="green",shape="box"];1986[label="True",fontsize=16,color="green",shape="box"];114 -> 133[label="",style="dashed", color="red", weight=0]; 172.97/119.04 114[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];114 -> 134[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 115 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 115[label="vuz11 * vuz12",fontsize=16,color="magenta"];115 -> 137[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 115 -> 138[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 116 -> 133[label="",style="dashed", color="red", weight=0]; 172.97/119.04 116[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];116 -> 135[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 117 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 117[label="vuz11 * vuz12",fontsize=16,color="magenta"];117 -> 139[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 117 -> 140[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 118[label="vuz14",fontsize=16,color="green",shape="box"];119[label="vuz13",fontsize=16,color="green",shape="box"];120 -> 141[label="",style="dashed", color="red", weight=0]; 172.97/119.04 120[label="primQuotInt vuz18 (reduce2D vuz19 (abs vuz21))",fontsize=16,color="magenta"];120 -> 142[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 125[label="Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];125 -> 143[label="",style="solid", color="black", weight=3]; 172.97/119.04 121 -> 133[label="",style="dashed", color="red", weight=0]; 172.97/119.04 121[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 122 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 122[label="vuz11 * vuz12",fontsize=16,color="magenta"];122 -> 144[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 124 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 124[label="vuz13 * vuz14",fontsize=16,color="magenta"];124 -> 146[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 124 -> 147[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 126[label="vuz14",fontsize=16,color="green",shape="box"];127[label="vuz13",fontsize=16,color="green",shape="box"];128[label="absReal2 (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal2 (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];128 -> 149[label="",style="solid", color="black", weight=3]; 172.97/119.04 129[label="Succ (Succ (primPlusNat vuz170 vuz4100))",fontsize=16,color="green",shape="box"];129 -> 150[label="",style="dashed", color="green", weight=3]; 172.97/119.04 130[label="Succ vuz4100",fontsize=16,color="green",shape="box"];131 -> 151[label="",style="dashed", color="red", weight=0]; 172.97/119.04 131[label="absReal1 (Integer (primMulInt vuz310 vuz400)) (not (compare (Integer (primMulInt vuz310 vuz400)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];131 -> 152[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 131 -> 153[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 237[label="absReal1 vuz25 (not (primCmpInt vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5406[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5406[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5406 -> 258[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5407[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5407[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5407 -> 259[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 2006[label="vuz10000",fontsize=16,color="green",shape="box"];2007[label="vuz10100",fontsize=16,color="green",shape="box"];547[label="primEqNat vuz1600 vuz4700",fontsize=16,color="burlywood",shape="triangle"];5408[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];547 -> 5408[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5408 -> 580[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5409[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];547 -> 5409[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5409 -> 581[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 2008[label="vuz10000",fontsize=16,color="green",shape="box"];2009[label="vuz10100",fontsize=16,color="green",shape="box"];134 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 134[label="vuz13 * vuz14",fontsize=16,color="magenta"];134 -> 156[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 134 -> 157[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 133[label="signum vuz26",fontsize=16,color="black",shape="triangle"];133 -> 158[label="",style="solid", color="black", weight=3]; 172.97/119.04 137[label="vuz12",fontsize=16,color="green",shape="box"];138[label="vuz11",fontsize=16,color="green",shape="box"];135 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 159[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 135 -> 160[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 139[label="vuz12",fontsize=16,color="green",shape="box"];140[label="vuz11",fontsize=16,color="green",shape="box"];142 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.04 142[label="abs vuz21",fontsize=16,color="magenta"];142 -> 161[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 141[label="primQuotInt vuz18 (reduce2D vuz19 vuz27)",fontsize=16,color="burlywood",shape="triangle"];5410[label="vuz18/Pos vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5410[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5410 -> 162[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5411[label="vuz18/Neg vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5411[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5411 -> 163[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 143 -> 164[label="",style="dashed", color="red", weight=0]; 172.97/119.04 143[label="Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14) `quot` reduce2D (Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];143 -> 165[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 143 -> 166[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 136 -> 20[label="",style="dashed", color="red", weight=0]; 172.97/119.04 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 167[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 136 -> 168[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 144[label="vuz12",fontsize=16,color="green",shape="box"];145[label="vuz11",fontsize=16,color="green",shape="box"];146[label="vuz14",fontsize=16,color="green",shape="box"];147[label="vuz13",fontsize=16,color="green",shape="box"];149[label="absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];149 -> 170[label="",style="solid", color="black", weight=3]; 172.97/119.04 150[label="primPlusNat vuz170 vuz4100",fontsize=16,color="burlywood",shape="triangle"];5412[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];150 -> 5412[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5412 -> 171[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5413[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];150 -> 5413[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5413 -> 172[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 152 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 152[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];152 -> 173[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 152 -> 174[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 153 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 153[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];153 -> 175[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 153 -> 176[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 151[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];151 -> 177[label="",style="solid", color="black", weight=3]; 172.97/119.04 258[label="absReal1 (Pos vuz250) (not (primCmpInt (Pos vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5414[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];258 -> 5414[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5414 -> 286[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5415[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 5415[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5415 -> 287[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 259[label="absReal1 (Neg vuz250) (not (primCmpInt (Neg vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5416[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];259 -> 5416[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5416 -> 288[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5417[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];259 -> 5417[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5417 -> 289[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 580[label="primEqNat (Succ vuz16000) vuz4700",fontsize=16,color="burlywood",shape="box"];5418[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];580 -> 5418[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5418 -> 627[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5419[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];580 -> 5419[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5419 -> 628[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 581[label="primEqNat Zero vuz4700",fontsize=16,color="burlywood",shape="box"];5420[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];581 -> 5420[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5420 -> 629[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5421[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];581 -> 5421[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5421 -> 630[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="signumReal vuz26",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 172.97/119.04 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz21",fontsize=16,color="green",shape="box"];162[label="primQuotInt (Pos vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];162 -> 183[label="",style="solid", color="black", weight=3]; 172.97/119.04 163[label="primQuotInt (Neg vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];163 -> 184[label="",style="solid", color="black", weight=3]; 172.97/119.04 165 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 165[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];165 -> 185[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 165 -> 186[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 166 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 166[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];166 -> 187[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 166 -> 188[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 164[label="Integer vuz30 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="triangle"];164 -> 189[label="",style="solid", color="black", weight=3]; 172.97/119.04 167[label="vuz14",fontsize=16,color="green",shape="box"];168[label="vuz13",fontsize=16,color="green",shape="box"];170[label="absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];170 -> 191[label="",style="solid", color="black", weight=3]; 172.97/119.04 171[label="primPlusNat (Succ vuz1700) vuz4100",fontsize=16,color="burlywood",shape="box"];5422[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];171 -> 5422[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5422 -> 192[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5423[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];171 -> 5423[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5423 -> 193[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 172[label="primPlusNat Zero vuz4100",fontsize=16,color="burlywood",shape="box"];5424[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];172 -> 5424[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5424 -> 194[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5425[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];172 -> 5425[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5425 -> 195[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 173[label="vuz400",fontsize=16,color="green",shape="box"];174[label="vuz310",fontsize=16,color="green",shape="box"];175[label="vuz400",fontsize=16,color="green",shape="box"];176[label="vuz310",fontsize=16,color="green",shape="box"];177[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (Integer (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];177 -> 196[label="",style="solid", color="black", weight=3]; 172.97/119.04 286[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];286 -> 326[label="",style="solid", color="black", weight=3]; 172.97/119.04 287[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];287 -> 327[label="",style="solid", color="black", weight=3]; 172.97/119.04 288[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];288 -> 328[label="",style="solid", color="black", weight=3]; 172.97/119.04 289[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];289 -> 329[label="",style="solid", color="black", weight=3]; 172.97/119.04 627[label="primEqNat (Succ vuz16000) (Succ vuz47000)",fontsize=16,color="black",shape="box"];627 -> 703[label="",style="solid", color="black", weight=3]; 172.97/119.04 628[label="primEqNat (Succ vuz16000) Zero",fontsize=16,color="black",shape="box"];628 -> 704[label="",style="solid", color="black", weight=3]; 172.97/119.04 629[label="primEqNat Zero (Succ vuz47000)",fontsize=16,color="black",shape="box"];629 -> 705[label="",style="solid", color="black", weight=3]; 172.97/119.04 630[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];630 -> 706[label="",style="solid", color="black", weight=3]; 172.97/119.04 182[label="signumReal3 vuz26",fontsize=16,color="black",shape="box"];182 -> 201[label="",style="solid", color="black", weight=3]; 172.97/119.04 183[label="primQuotInt (Pos vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];183 -> 202[label="",style="solid", color="black", weight=3]; 172.97/119.04 184[label="primQuotInt (Neg vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];184 -> 203[label="",style="solid", color="black", weight=3]; 172.97/119.04 185[label="vuz120",fontsize=16,color="green",shape="box"];186[label="vuz110",fontsize=16,color="green",shape="box"];187[label="vuz120",fontsize=16,color="green",shape="box"];188[label="vuz110",fontsize=16,color="green",shape="box"];189[label="Integer vuz30 * signumReal (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];189 -> 204[label="",style="solid", color="black", weight=3]; 172.97/119.04 191[label="absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5426[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];191 -> 5426[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5426 -> 206[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 192[label="primPlusNat (Succ vuz1700) (Succ vuz41000)",fontsize=16,color="black",shape="box"];192 -> 207[label="",style="solid", color="black", weight=3]; 172.97/119.04 193[label="primPlusNat (Succ vuz1700) Zero",fontsize=16,color="black",shape="box"];193 -> 208[label="",style="solid", color="black", weight=3]; 172.97/119.04 194[label="primPlusNat Zero (Succ vuz41000)",fontsize=16,color="black",shape="box"];194 -> 209[label="",style="solid", color="black", weight=3]; 172.97/119.04 195[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];195 -> 210[label="",style="solid", color="black", weight=3]; 172.97/119.04 196[label="absReal1 (Integer vuz28) (not (primCmpInt vuz29 (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5427[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5427[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5427 -> 211[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5428[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5428[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5428 -> 212[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 326[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];326 -> 364[label="",style="solid", color="black", weight=3]; 172.97/119.04 327[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];327 -> 365[label="",style="solid", color="black", weight=3]; 172.97/119.04 328[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];328 -> 366[label="",style="solid", color="black", weight=3]; 172.97/119.04 329[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];329 -> 367[label="",style="solid", color="black", weight=3]; 172.97/119.04 703 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.04 703[label="primEqNat vuz16000 vuz47000",fontsize=16,color="magenta"];703 -> 789[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 703 -> 790[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 704[label="False",fontsize=16,color="green",shape="box"];705[label="False",fontsize=16,color="green",shape="box"];706[label="True",fontsize=16,color="green",shape="box"];201[label="signumReal2 vuz26 (vuz26 == fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];201 -> 217[label="",style="solid", color="black", weight=3]; 172.97/119.04 202[label="primQuotInt (Pos vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];202 -> 218[label="",style="solid", color="black", weight=3]; 172.97/119.04 203[label="primQuotInt (Neg vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];203 -> 219[label="",style="solid", color="black", weight=3]; 172.97/119.04 204[label="Integer vuz30 * signumReal3 (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal3 (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];204 -> 220[label="",style="solid", color="black", weight=3]; 172.97/119.04 206[label="absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * vuz14)) (absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5429[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];206 -> 5429[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5429 -> 222[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 207[label="Succ (Succ (primPlusNat vuz1700 vuz41000))",fontsize=16,color="green",shape="box"];207 -> 223[label="",style="dashed", color="green", weight=3]; 172.97/119.04 208[label="Succ vuz1700",fontsize=16,color="green",shape="box"];209[label="Succ vuz41000",fontsize=16,color="green",shape="box"];210[label="Zero",fontsize=16,color="green",shape="box"];211[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5430[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];211 -> 5430[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5430 -> 224[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5431[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];211 -> 5431[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5431 -> 225[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 212[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5432[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];212 -> 5432[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5432 -> 226[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5433[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 5433[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5433 -> 227[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 364[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpNat (Succ vuz2500) Zero == LT))",fontsize=16,color="black",shape="box"];364 -> 391[label="",style="solid", color="black", weight=3]; 172.97/119.04 365[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];365 -> 392[label="",style="solid", color="black", weight=3]; 172.97/119.04 366[label="absReal1 (Neg (Succ vuz2500)) (not (LT == LT))",fontsize=16,color="black",shape="box"];366 -> 393[label="",style="solid", color="black", weight=3]; 172.97/119.04 367[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];367 -> 394[label="",style="solid", color="black", weight=3]; 172.97/119.04 789[label="vuz47000",fontsize=16,color="green",shape="box"];790[label="vuz16000",fontsize=16,color="green",shape="box"];217[label="signumReal2 vuz26 (primEqInt vuz26 (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5434[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5434[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5434 -> 232[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5435[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5435[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5435 -> 233[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 218[label="primQuotInt (Pos vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];218 -> 234[label="",style="solid", color="black", weight=3]; 172.97/119.04 219[label="primQuotInt (Neg vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];219 -> 235[label="",style="solid", color="black", weight=3]; 172.97/119.04 220[label="Integer vuz30 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero))) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5436[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];220 -> 5436[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5436 -> 236[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 222[label="absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * Integer vuz140)) (absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];222 -> 238[label="",style="solid", color="black", weight=3]; 172.97/119.04 223 -> 150[label="",style="dashed", color="red", weight=0]; 172.97/119.04 223[label="primPlusNat vuz1700 vuz41000",fontsize=16,color="magenta"];223 -> 239[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 223 -> 240[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 224[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];224 -> 241[label="",style="solid", color="black", weight=3]; 172.97/119.04 225[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];225 -> 242[label="",style="solid", color="black", weight=3]; 172.97/119.04 226[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 243[label="",style="solid", color="black", weight=3]; 172.97/119.04 227[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];227 -> 244[label="",style="solid", color="black", weight=3]; 172.97/119.04 391[label="absReal1 (Pos (Succ vuz2500)) (not (GT == LT))",fontsize=16,color="black",shape="box"];391 -> 420[label="",style="solid", color="black", weight=3]; 172.97/119.04 392[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 172.97/119.04 393[label="absReal1 (Neg (Succ vuz2500)) (not True)",fontsize=16,color="black",shape="box"];393 -> 422[label="",style="solid", color="black", weight=3]; 172.97/119.04 394[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];394 -> 423[label="",style="solid", color="black", weight=3]; 172.97/119.04 232[label="signumReal2 (Pos vuz260) (primEqInt (Pos vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5437[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];232 -> 5437[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5437 -> 249[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5438[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];232 -> 5438[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5438 -> 250[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 233[label="signumReal2 (Neg vuz260) (primEqInt (Neg vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5439[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];233 -> 5439[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5439 -> 251[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5440[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];233 -> 5440[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5440 -> 252[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 234[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5441[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5441[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5441 -> 253[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5442[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5442[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5442 -> 254[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 235[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5443[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5443[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5443 -> 255[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5444[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5444[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5444 -> 256[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 236[label="Integer vuz30 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero))) (abs (Integer vuz130 * vuz14))",fontsize=16,color="burlywood",shape="box"];5445[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];236 -> 5445[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5445 -> 257[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 238 -> 260[label="",style="dashed", color="red", weight=0]; 172.97/119.04 238[label="absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer (primMulInt vuz130 vuz140))) (absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];238 -> 261[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 238 -> 262[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 238 -> 263[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 238 -> 264[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 238 -> 265[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 239[label="vuz1700",fontsize=16,color="green",shape="box"];240[label="vuz41000",fontsize=16,color="green",shape="box"];241[label="absReal1 (Integer vuz28) (not (primCmpNat (Succ vuz2900) Zero == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];241 -> 266[label="",style="solid", color="black", weight=3]; 172.97/119.04 242[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];242 -> 267[label="",style="solid", color="black", weight=3]; 172.97/119.04 243[label="absReal1 (Integer vuz28) (not (LT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 268[label="",style="solid", color="black", weight=3]; 172.97/119.04 244 -> 242[label="",style="dashed", color="red", weight=0]; 172.97/119.04 244[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];420[label="absReal1 (Pos (Succ vuz2500)) (not False)",fontsize=16,color="black",shape="box"];420 -> 460[label="",style="solid", color="black", weight=3]; 172.97/119.04 421[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];421 -> 461[label="",style="solid", color="black", weight=3]; 172.97/119.04 422[label="absReal1 (Neg (Succ vuz2500)) False",fontsize=16,color="black",shape="box"];422 -> 462[label="",style="solid", color="black", weight=3]; 172.97/119.04 423[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];423 -> 463[label="",style="solid", color="black", weight=3]; 172.97/119.04 249[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];249 -> 273[label="",style="solid", color="black", weight=3]; 172.97/119.04 250[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];250 -> 274[label="",style="solid", color="black", weight=3]; 172.97/119.04 251[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];251 -> 275[label="",style="solid", color="black", weight=3]; 172.97/119.04 252[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];252 -> 276[label="",style="solid", color="black", weight=3]; 172.97/119.04 253[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5446[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];253 -> 5446[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5446 -> 277[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5447[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];253 -> 5447[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5447 -> 278[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 254[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5448[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];254 -> 5448[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5448 -> 279[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5449[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];254 -> 5449[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5449 -> 280[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 255[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5450[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];255 -> 5450[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5450 -> 281[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5451[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];255 -> 5451[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5451 -> 282[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 256[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5452[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];256 -> 5452[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5452 -> 283[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 5453[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];256 -> 5453[label="",style="solid", color="burlywood", weight=9]; 172.97/119.04 5453 -> 284[label="",style="solid", color="burlywood", weight=3]; 172.97/119.04 257[label="Integer vuz30 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero))) (abs (Integer vuz130 * Integer vuz140))",fontsize=16,color="black",shape="box"];257 -> 285[label="",style="solid", color="black", weight=3]; 172.97/119.04 261 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 261[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];261 -> 290[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 261 -> 291[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 262 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 262[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];262 -> 292[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 262 -> 293[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 263 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 263[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];263 -> 294[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 263 -> 295[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 264 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 264[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 265 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 265[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];265 -> 298[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 265 -> 299[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 260[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="triangle"];260 -> 300[label="",style="solid", color="black", weight=3]; 172.97/119.04 266[label="absReal1 (Integer vuz28) (not (GT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];266 -> 301[label="",style="solid", color="black", weight=3]; 172.97/119.04 267[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];267 -> 302[label="",style="solid", color="black", weight=3]; 172.97/119.04 268[label="absReal1 (Integer vuz28) (not True) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];268 -> 303[label="",style="solid", color="black", weight=3]; 172.97/119.04 460[label="absReal1 (Pos (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];460 -> 504[label="",style="solid", color="black", weight=3]; 172.97/119.04 461[label="Pos Zero",fontsize=16,color="green",shape="box"];462[label="absReal0 (Neg (Succ vuz2500)) otherwise",fontsize=16,color="black",shape="box"];462 -> 505[label="",style="solid", color="black", weight=3]; 172.97/119.04 463[label="Neg Zero",fontsize=16,color="green",shape="box"];273[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];273 -> 308[label="",style="solid", color="black", weight=3]; 172.97/119.04 274[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];274 -> 309[label="",style="solid", color="black", weight=3]; 172.97/119.04 275[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];275 -> 310[label="",style="solid", color="black", weight=3]; 172.97/119.04 276[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];276 -> 311[label="",style="solid", color="black", weight=3]; 172.97/119.04 277[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];277 -> 312[label="",style="solid", color="black", weight=3]; 172.97/119.04 278[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];278 -> 313[label="",style="solid", color="black", weight=3]; 172.97/119.04 279[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];279 -> 314[label="",style="solid", color="black", weight=3]; 172.97/119.04 280[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];280 -> 315[label="",style="solid", color="black", weight=3]; 172.97/119.04 281[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];281 -> 316[label="",style="solid", color="black", weight=3]; 172.97/119.04 282[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];282 -> 317[label="",style="solid", color="black", weight=3]; 172.97/119.04 283[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];283 -> 318[label="",style="solid", color="black", weight=3]; 172.97/119.04 284[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];284 -> 319[label="",style="solid", color="black", weight=3]; 172.97/119.04 285 -> 320[label="",style="dashed", color="red", weight=0]; 172.97/119.04 285[label="Integer vuz30 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero))) (abs (Integer (primMulInt vuz130 vuz140)))",fontsize=16,color="magenta"];285 -> 321[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 285 -> 322[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 285 -> 323[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 285 -> 324[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 285 -> 325[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 290[label="vuz140",fontsize=16,color="green",shape="box"];291[label="vuz130",fontsize=16,color="green",shape="box"];292[label="vuz140",fontsize=16,color="green",shape="box"];293[label="vuz130",fontsize=16,color="green",shape="box"];294[label="vuz140",fontsize=16,color="green",shape="box"];295[label="vuz130",fontsize=16,color="green",shape="box"];296[label="vuz140",fontsize=16,color="green",shape="box"];297[label="vuz130",fontsize=16,color="green",shape="box"];298[label="vuz140",fontsize=16,color="green",shape="box"];299[label="vuz130",fontsize=16,color="green",shape="box"];300[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (Integer (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (Integer (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];300 -> 330[label="",style="solid", color="black", weight=3]; 172.97/119.04 301 -> 267[label="",style="dashed", color="red", weight=0]; 172.97/119.04 301[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="magenta"];302[label="absReal1 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];302 -> 331[label="",style="solid", color="black", weight=3]; 172.97/119.04 303[label="absReal1 (Integer vuz28) False == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];303 -> 332[label="",style="solid", color="black", weight=3]; 172.97/119.04 504[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];505[label="absReal0 (Neg (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];505 -> 542[label="",style="solid", color="black", weight=3]; 172.97/119.04 308[label="signumReal2 (Pos (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];308 -> 337[label="",style="solid", color="black", weight=3]; 172.97/119.04 309[label="signumReal2 (Pos Zero) True",fontsize=16,color="black",shape="box"];309 -> 338[label="",style="solid", color="black", weight=3]; 172.97/119.04 310[label="signumReal2 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];310 -> 339[label="",style="solid", color="black", weight=3]; 172.97/119.04 311[label="signumReal2 (Neg Zero) True",fontsize=16,color="black",shape="box"];311 -> 340[label="",style="solid", color="black", weight=3]; 172.97/119.04 312[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];312 -> 341[label="",style="solid", color="black", weight=3]; 172.97/119.04 313 -> 342[label="",style="dashed", color="red", weight=0]; 172.97/119.04 313[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];313 -> 343[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 314[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];314 -> 344[label="",style="solid", color="black", weight=3]; 172.97/119.04 315 -> 345[label="",style="dashed", color="red", weight=0]; 172.97/119.04 315[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];315 -> 346[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 316[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];316 -> 347[label="",style="solid", color="black", weight=3]; 172.97/119.04 317 -> 348[label="",style="dashed", color="red", weight=0]; 172.97/119.04 317[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];317 -> 349[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 318[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];318 -> 350[label="",style="solid", color="black", weight=3]; 172.97/119.04 319 -> 351[label="",style="dashed", color="red", weight=0]; 172.97/119.04 319[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];319 -> 352[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 321 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 321[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];321 -> 353[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 321 -> 354[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 322 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 322[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];322 -> 355[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 322 -> 356[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 323 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 323[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];323 -> 357[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 323 -> 358[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 324 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 324[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];324 -> 359[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 324 -> 360[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 325 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.04 325[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];325 -> 361[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 325 -> 362[label="",style="dashed", color="magenta", weight=3]; 172.97/119.04 320[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];320 -> 363[label="",style="solid", color="black", weight=3]; 172.97/119.05 330[label="absReal1 (Integer vuz32) (not (primCmpInt vuz35 (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt vuz35 (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5454[label="vuz35/Pos vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5454[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5454 -> 368[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5455[label="vuz35/Neg vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5455[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5455 -> 369[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 331[label="Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];331 -> 370[label="",style="solid", color="black", weight=3]; 172.97/119.05 332[label="absReal0 (Integer vuz28) otherwise == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];332 -> 371[label="",style="solid", color="black", weight=3]; 172.97/119.05 542[label="`negate` Neg (Succ vuz2500)",fontsize=16,color="black",shape="box"];542 -> 577[label="",style="solid", color="black", weight=3]; 172.97/119.05 337[label="signumReal1 (Pos (Succ vuz2600)) (Pos (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];337 -> 374[label="",style="solid", color="black", weight=3]; 172.97/119.05 339 -> 376[label="",style="dashed", color="red", weight=0]; 172.97/119.05 339[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="magenta"];339 -> 377[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 340 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 340[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];341[label="primQuotInt (Pos vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];341 -> 378[label="",style="solid", color="black", weight=3]; 172.97/119.05 343 -> 305[label="",style="dashed", color="red", weight=0]; 172.97/119.05 343[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];342[label="primQuotInt (Pos vuz180) (gcd2 vuz42 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5456[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];342 -> 5456[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5456 -> 379[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5457[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];342 -> 5457[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5457 -> 380[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 344[label="primQuotInt (Pos vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];344 -> 381[label="",style="solid", color="black", weight=3]; 172.97/119.05 346 -> 307[label="",style="dashed", color="red", weight=0]; 172.97/119.05 346[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];345[label="primQuotInt (Pos vuz180) (gcd2 vuz43 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5458[label="vuz43/False",fontsize=10,color="white",style="solid",shape="box"];345 -> 5458[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5458 -> 382[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5459[label="vuz43/True",fontsize=10,color="white",style="solid",shape="box"];345 -> 5459[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5459 -> 383[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 347[label="primQuotInt (Neg vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];347 -> 384[label="",style="solid", color="black", weight=3]; 172.97/119.05 349 -> 305[label="",style="dashed", color="red", weight=0]; 172.97/119.05 349[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];348[label="primQuotInt (Neg vuz180) (gcd2 vuz44 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5460[label="vuz44/False",fontsize=10,color="white",style="solid",shape="box"];348 -> 5460[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5460 -> 385[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5461[label="vuz44/True",fontsize=10,color="white",style="solid",shape="box"];348 -> 5461[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5461 -> 386[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 350[label="primQuotInt (Neg vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];350 -> 387[label="",style="solid", color="black", weight=3]; 172.97/119.05 352 -> 307[label="",style="dashed", color="red", weight=0]; 172.97/119.05 352[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];351[label="primQuotInt (Neg vuz180) (gcd2 vuz45 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5462[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 5462[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5462 -> 388[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5463[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 5463[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5463 -> 389[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 353[label="vuz140",fontsize=16,color="green",shape="box"];354[label="vuz130",fontsize=16,color="green",shape="box"];355[label="vuz140",fontsize=16,color="green",shape="box"];356[label="vuz130",fontsize=16,color="green",shape="box"];357[label="vuz140",fontsize=16,color="green",shape="box"];358[label="vuz130",fontsize=16,color="green",shape="box"];359[label="vuz140",fontsize=16,color="green",shape="box"];360[label="vuz130",fontsize=16,color="green",shape="box"];361[label="vuz140",fontsize=16,color="green",shape="box"];362[label="vuz130",fontsize=16,color="green",shape="box"];363[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == Integer (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == Integer (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];363 -> 390[label="",style="solid", color="black", weight=3]; 172.97/119.05 368[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5464[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];368 -> 5464[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5464 -> 395[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5465[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];368 -> 5465[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5465 -> 396[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 369[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5466[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];369 -> 5466[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5466 -> 397[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5467[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];369 -> 5467[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5467 -> 398[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 370[label="Integer vuz28 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];370 -> 399[label="",style="solid", color="black", weight=3]; 172.97/119.05 371[label="absReal0 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];371 -> 400[label="",style="solid", color="black", weight=3]; 172.97/119.05 577 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.05 577[label="primNegInt (Neg (Succ vuz2500))",fontsize=16,color="magenta"];577 -> 624[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 374 -> 403[label="",style="dashed", color="red", weight=0]; 172.97/119.05 374[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];374 -> 404[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 377 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 377[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];376[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > vuz46)",fontsize=16,color="black",shape="triangle"];376 -> 405[label="",style="solid", color="black", weight=3]; 172.97/119.05 378[label="primQuotInt (Pos vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];378 -> 406[label="",style="solid", color="black", weight=3]; 172.97/119.05 305[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];305 -> 334[label="",style="solid", color="black", weight=3]; 172.97/119.05 379[label="primQuotInt (Pos vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];379 -> 407[label="",style="solid", color="black", weight=3]; 172.97/119.05 380[label="primQuotInt (Pos vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];380 -> 408[label="",style="solid", color="black", weight=3]; 172.97/119.05 381[label="primQuotInt (Pos vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];381 -> 409[label="",style="solid", color="black", weight=3]; 172.97/119.05 307[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];307 -> 336[label="",style="solid", color="black", weight=3]; 172.97/119.05 382[label="primQuotInt (Pos vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];382 -> 410[label="",style="solid", color="black", weight=3]; 172.97/119.05 383[label="primQuotInt (Pos vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];383 -> 411[label="",style="solid", color="black", weight=3]; 172.97/119.05 384[label="primQuotInt (Neg vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];384 -> 412[label="",style="solid", color="black", weight=3]; 172.97/119.05 385[label="primQuotInt (Neg vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];385 -> 413[label="",style="solid", color="black", weight=3]; 172.97/119.05 386[label="primQuotInt (Neg vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];386 -> 414[label="",style="solid", color="black", weight=3]; 172.97/119.05 387[label="primQuotInt (Neg vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];387 -> 415[label="",style="solid", color="black", weight=3]; 172.97/119.05 388[label="primQuotInt (Neg vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];388 -> 416[label="",style="solid", color="black", weight=3]; 172.97/119.05 389[label="primQuotInt (Neg vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];389 -> 417[label="",style="solid", color="black", weight=3]; 172.97/119.05 390[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt vuz40 (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt vuz40 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5468[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5468[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5468 -> 418[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5469[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5469[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5469 -> 419[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 395[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];395 -> 424[label="",style="solid", color="black", weight=3]; 172.97/119.05 396[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];396 -> 425[label="",style="solid", color="black", weight=3]; 172.97/119.05 397[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];397 -> 426[label="",style="solid", color="black", weight=3]; 172.97/119.05 398[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];398 -> 427[label="",style="solid", color="black", weight=3]; 172.97/119.05 399[label="primEqInt vuz28 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5470[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5470[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5470 -> 428[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5471[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5471[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5471 -> 429[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 400[label="`negate` Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];400 -> 430[label="",style="solid", color="black", weight=3]; 172.97/119.05 624[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];471[label="primNegInt vuz28",fontsize=16,color="burlywood",shape="triangle"];5472[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5472[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5472 -> 513[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5473[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5473[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5473 -> 514[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 404 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 404[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];403[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="black",shape="triangle"];403 -> 432[label="",style="solid", color="black", weight=3]; 172.97/119.05 405[label="signumReal1 (Neg (Succ vuz2600)) (compare (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="black",shape="box"];405 -> 433[label="",style="solid", color="black", weight=3]; 172.97/119.05 406 -> 434[label="",style="dashed", color="red", weight=0]; 172.97/119.05 406[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];406 -> 435[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 406 -> 436[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 334[label="True",fontsize=16,color="green",shape="box"];407[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];407 -> 439[label="",style="solid", color="black", weight=3]; 172.97/119.05 408 -> 440[label="",style="dashed", color="red", weight=0]; 172.97/119.05 408[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];408 -> 441[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 409 -> 434[label="",style="dashed", color="red", weight=0]; 172.97/119.05 409[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];409 -> 437[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 409 -> 438[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 336[label="True",fontsize=16,color="green",shape="box"];410[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];410 -> 442[label="",style="solid", color="black", weight=3]; 172.97/119.05 411 -> 443[label="",style="dashed", color="red", weight=0]; 172.97/119.05 411[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];411 -> 444[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 412 -> 445[label="",style="dashed", color="red", weight=0]; 172.97/119.05 412[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];412 -> 446[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 412 -> 447[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 413[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];413 -> 450[label="",style="solid", color="black", weight=3]; 172.97/119.05 414 -> 451[label="",style="dashed", color="red", weight=0]; 172.97/119.05 414[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];414 -> 452[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 415 -> 445[label="",style="dashed", color="red", weight=0]; 172.97/119.05 415[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];415 -> 448[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 415 -> 449[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 416[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];416 -> 453[label="",style="solid", color="black", weight=3]; 172.97/119.05 417 -> 454[label="",style="dashed", color="red", weight=0]; 172.97/119.05 417[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];417 -> 455[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 418[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5474[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];418 -> 5474[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5474 -> 456[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5475[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 5475[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5475 -> 457[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 419[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5476[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];419 -> 5476[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5476 -> 458[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5477[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];419 -> 5477[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5477 -> 459[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 424[label="absReal1 (Integer vuz32) (not (primCmpNat (Succ vuz3500) Zero == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpNat (Succ vuz3500) Zero == LT)))",fontsize=16,color="black",shape="box"];424 -> 464[label="",style="solid", color="black", weight=3]; 172.97/119.05 425[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];425 -> 465[label="",style="solid", color="black", weight=3]; 172.97/119.05 426[label="absReal1 (Integer vuz32) (not (LT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (LT == LT)))",fontsize=16,color="black",shape="box"];426 -> 466[label="",style="solid", color="black", weight=3]; 172.97/119.05 427 -> 425[label="",style="dashed", color="red", weight=0]; 172.97/119.05 427[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="magenta"];428[label="primEqInt (Pos vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5478[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];428 -> 5478[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5478 -> 467[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5479[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];428 -> 5479[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5479 -> 468[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 429[label="primEqInt (Neg vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5480[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];429 -> 5480[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5480 -> 469[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5481[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];429 -> 5481[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5481 -> 470[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 430 -> 331[label="",style="dashed", color="red", weight=0]; 172.97/119.05 430[label="Integer (primNegInt vuz28) == fromInt (Pos Zero)",fontsize=16,color="magenta"];430 -> 471[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 513[label="primNegInt (Pos vuz280)",fontsize=16,color="black",shape="box"];513 -> 545[label="",style="solid", color="black", weight=3]; 172.97/119.05 514[label="primNegInt (Neg vuz280)",fontsize=16,color="black",shape="box"];514 -> 546[label="",style="solid", color="black", weight=3]; 172.97/119.05 432[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="burlywood",shape="box"];5482[label="vuz48/Pos vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5482[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5482 -> 474[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5483[label="vuz48/Neg vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5483[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5483 -> 475[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 433[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="burlywood",shape="box"];5484[label="vuz46/Pos vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5484[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5484 -> 476[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5485[label="vuz46/Neg vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5485[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5485 -> 477[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 435 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 435[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];435 -> 478[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 436 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 436[label="abs vuz27",fontsize=16,color="magenta"];436 -> 479[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 434[label="primQuotInt (Pos vuz180) (gcd0Gcd' vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];434 -> 480[label="",style="solid", color="black", weight=3]; 172.97/119.05 439 -> 434[label="",style="dashed", color="red", weight=0]; 172.97/119.05 439[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];439 -> 481[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 439 -> 482[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 441 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 441[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];440[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz51) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];440 -> 483[label="",style="solid", color="black", weight=3]; 172.97/119.05 437 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 437[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];437 -> 484[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 438 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 438[label="abs vuz27",fontsize=16,color="magenta"];438 -> 485[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 442 -> 434[label="",style="dashed", color="red", weight=0]; 172.97/119.05 442[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];442 -> 486[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 442 -> 487[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 444 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 444[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];443[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz52) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];443 -> 488[label="",style="solid", color="black", weight=3]; 172.97/119.05 446 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 446[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];446 -> 489[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 447 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 447[label="abs vuz27",fontsize=16,color="magenta"];447 -> 490[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 445[label="primQuotInt (Neg vuz180) (gcd0Gcd' vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];445 -> 491[label="",style="solid", color="black", weight=3]; 172.97/119.05 450 -> 445[label="",style="dashed", color="red", weight=0]; 172.97/119.05 450[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];450 -> 492[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 450 -> 493[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 452 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 452[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];451[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz55) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];451 -> 494[label="",style="solid", color="black", weight=3]; 172.97/119.05 448 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 448[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];448 -> 495[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 449 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 449[label="abs vuz27",fontsize=16,color="magenta"];449 -> 496[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 453 -> 445[label="",style="dashed", color="red", weight=0]; 172.97/119.05 453[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];453 -> 497[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 453 -> 498[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 455 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 455[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];454[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz56) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];454 -> 499[label="",style="solid", color="black", weight=3]; 172.97/119.05 456[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];456 -> 500[label="",style="solid", color="black", weight=3]; 172.97/119.05 457[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];457 -> 501[label="",style="solid", color="black", weight=3]; 172.97/119.05 458[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];458 -> 502[label="",style="solid", color="black", weight=3]; 172.97/119.05 459[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];459 -> 503[label="",style="solid", color="black", weight=3]; 172.97/119.05 464[label="absReal1 (Integer vuz32) (not (GT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (GT == LT)))",fontsize=16,color="black",shape="box"];464 -> 506[label="",style="solid", color="black", weight=3]; 172.97/119.05 465[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="black",shape="triangle"];465 -> 507[label="",style="solid", color="black", weight=3]; 172.97/119.05 466[label="absReal1 (Integer vuz32) (not True) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not True))",fontsize=16,color="black",shape="box"];466 -> 508[label="",style="solid", color="black", weight=3]; 172.97/119.05 467[label="primEqInt (Pos (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];467 -> 509[label="",style="solid", color="black", weight=3]; 172.97/119.05 468[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];468 -> 510[label="",style="solid", color="black", weight=3]; 172.97/119.05 469[label="primEqInt (Neg (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];469 -> 511[label="",style="solid", color="black", weight=3]; 172.97/119.05 470[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];470 -> 512[label="",style="solid", color="black", weight=3]; 172.97/119.05 545[label="Neg vuz280",fontsize=16,color="green",shape="box"];546[label="Pos vuz280",fontsize=16,color="green",shape="box"];474[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Pos vuz480) == GT)",fontsize=16,color="black",shape="box"];474 -> 518[label="",style="solid", color="black", weight=3]; 172.97/119.05 475[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Neg vuz480) == GT)",fontsize=16,color="black",shape="box"];475 -> 519[label="",style="solid", color="black", weight=3]; 172.97/119.05 476[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Pos vuz460) == GT)",fontsize=16,color="black",shape="box"];476 -> 520[label="",style="solid", color="black", weight=3]; 172.97/119.05 477[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Neg vuz460) == GT)",fontsize=16,color="black",shape="box"];477 -> 521[label="",style="solid", color="black", weight=3]; 172.97/119.05 478[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];479[label="vuz27",fontsize=16,color="green",shape="box"];480[label="primQuotInt (Pos vuz180) (gcd0Gcd'2 vuz50 vuz49)",fontsize=16,color="black",shape="box"];480 -> 522[label="",style="solid", color="black", weight=3]; 172.97/119.05 481 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 481[label="abs (Pos Zero)",fontsize=16,color="magenta"];481 -> 523[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 482 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 482[label="abs vuz27",fontsize=16,color="magenta"];482 -> 524[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 483[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz51) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5486[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5486[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5486 -> 525[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5487[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5487[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5487 -> 526[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 484[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];485[label="vuz27",fontsize=16,color="green",shape="box"];486 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 486[label="abs (Neg Zero)",fontsize=16,color="magenta"];486 -> 527[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 487 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 487[label="abs vuz27",fontsize=16,color="magenta"];487 -> 528[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 488[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz52) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5488[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5488[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5488 -> 529[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5489[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5489[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5489 -> 530[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 489[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];490[label="vuz27",fontsize=16,color="green",shape="box"];491[label="primQuotInt (Neg vuz180) (gcd0Gcd'2 vuz54 vuz53)",fontsize=16,color="black",shape="box"];491 -> 531[label="",style="solid", color="black", weight=3]; 172.97/119.05 492 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 492[label="abs (Pos Zero)",fontsize=16,color="magenta"];492 -> 532[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 493 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 493[label="abs vuz27",fontsize=16,color="magenta"];493 -> 533[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 494[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz55) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5490[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5490[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5490 -> 534[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5491[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5491[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5491 -> 535[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 495[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];496[label="vuz27",fontsize=16,color="green",shape="box"];497 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 497[label="abs (Neg Zero)",fontsize=16,color="magenta"];497 -> 536[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 498 -> 123[label="",style="dashed", color="red", weight=0]; 172.97/119.05 498[label="abs vuz27",fontsize=16,color="magenta"];498 -> 537[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 499[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz56) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5492[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5492[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5492 -> 538[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5493[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5493[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5493 -> 539[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 500[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];500 -> 540[label="",style="solid", color="black", weight=3]; 172.97/119.05 501[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];501 -> 541[label="",style="solid", color="black", weight=3]; 172.97/119.05 502 -> 500[label="",style="dashed", color="red", weight=0]; 172.97/119.05 502[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="magenta"];503 -> 501[label="",style="dashed", color="red", weight=0]; 172.97/119.05 503[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="magenta"];506 -> 465[label="",style="dashed", color="red", weight=0]; 172.97/119.05 506[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="magenta"];507[label="absReal1 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) True)",fontsize=16,color="black",shape="box"];507 -> 543[label="",style="solid", color="black", weight=3]; 172.97/119.05 508[label="absReal1 (Integer vuz32) False `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) False)",fontsize=16,color="black",shape="box"];508 -> 544[label="",style="solid", color="black", weight=3]; 172.97/119.05 509[label="False",fontsize=16,color="green",shape="box"];510[label="True",fontsize=16,color="green",shape="box"];511[label="False",fontsize=16,color="green",shape="box"];512[label="True",fontsize=16,color="green",shape="box"];518 -> 2211[label="",style="dashed", color="red", weight=0]; 172.97/119.05 518[label="signumReal1 (Pos (Succ vuz2600)) (primCmpNat (Succ vuz2600) vuz480 == GT)",fontsize=16,color="magenta"];518 -> 2212[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 518 -> 2213[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 518 -> 2214[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 519[label="signumReal1 (Pos (Succ vuz2600)) (GT == GT)",fontsize=16,color="black",shape="triangle"];519 -> 551[label="",style="solid", color="black", weight=3]; 172.97/119.05 520[label="signumReal1 (Neg (Succ vuz2600)) (LT == GT)",fontsize=16,color="black",shape="triangle"];520 -> 552[label="",style="solid", color="black", weight=3]; 172.97/119.05 521 -> 2267[label="",style="dashed", color="red", weight=0]; 172.97/119.05 521[label="signumReal1 (Neg (Succ vuz2600)) (primCmpNat vuz460 (Succ vuz2600) == GT)",fontsize=16,color="magenta"];521 -> 2268[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 521 -> 2269[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 521 -> 2270[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 522 -> 555[label="",style="dashed", color="red", weight=0]; 172.97/119.05 522[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == fromInt (Pos Zero)) vuz50 vuz49)",fontsize=16,color="magenta"];522 -> 556[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 523[label="Pos Zero",fontsize=16,color="green",shape="box"];524[label="vuz27",fontsize=16,color="green",shape="box"];525[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz51) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5494[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];525 -> 5494[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5494 -> 557[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5495[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 5495[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5495 -> 558[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 526[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz51) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5496[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];526 -> 5496[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5496 -> 559[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5497[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 5497[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5497 -> 560[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 527[label="Neg Zero",fontsize=16,color="green",shape="box"];528[label="vuz27",fontsize=16,color="green",shape="box"];529[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz52) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5498[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];529 -> 5498[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5498 -> 561[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5499[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];529 -> 5499[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5499 -> 562[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 530[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz52) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5500[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];530 -> 5500[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5500 -> 563[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5501[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];530 -> 5501[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5501 -> 564[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 531 -> 565[label="",style="dashed", color="red", weight=0]; 172.97/119.05 531[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == fromInt (Pos Zero)) vuz54 vuz53)",fontsize=16,color="magenta"];531 -> 566[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 532[label="Pos Zero",fontsize=16,color="green",shape="box"];533[label="vuz27",fontsize=16,color="green",shape="box"];534[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz55) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5502[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];534 -> 5502[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5502 -> 567[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5503[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];534 -> 5503[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5503 -> 568[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 535[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz55) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5504[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];535 -> 5504[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5504 -> 569[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5505[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];535 -> 5505[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5505 -> 570[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 536[label="Neg Zero",fontsize=16,color="green",shape="box"];537[label="vuz27",fontsize=16,color="green",shape="box"];538[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz56) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5506[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];538 -> 5506[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5506 -> 571[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5507[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];538 -> 5507[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5507 -> 572[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 539[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz56) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5508[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];539 -> 5508[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5508 -> 573[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5509[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];539 -> 5509[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5509 -> 574[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 540[label="Integer vuz30 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];540 -> 575[label="",style="solid", color="black", weight=3]; 172.97/119.05 541[label="Integer vuz30 * fromInt (Pos Zero) `quot` reduce2D (Integer vuz31 * fromInt (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];541 -> 576[label="",style="solid", color="black", weight=3]; 172.97/119.05 543[label="Integer vuz32 `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];543 -> 578[label="",style="solid", color="black", weight=3]; 172.97/119.05 544[label="absReal0 (Integer vuz32) otherwise `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) otherwise)",fontsize=16,color="black",shape="box"];544 -> 579[label="",style="solid", color="black", weight=3]; 172.97/119.05 2212[label="vuz2600",fontsize=16,color="green",shape="box"];2213[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2214[label="vuz480",fontsize=16,color="green",shape="box"];2211[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz135 vuz136 == GT)",fontsize=16,color="burlywood",shape="triangle"];5510[label="vuz135/Succ vuz1350",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5510[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5510 -> 2242[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5511[label="vuz135/Zero",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5511[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5511 -> 2243[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 551[label="signumReal1 (Pos (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];551 -> 584[label="",style="solid", color="black", weight=3]; 172.97/119.05 552[label="signumReal1 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="triangle"];552 -> 585[label="",style="solid", color="black", weight=3]; 172.97/119.05 2268[label="vuz2600",fontsize=16,color="green",shape="box"];2269[label="vuz460",fontsize=16,color="green",shape="box"];2270[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2267[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz139 vuz140 == GT)",fontsize=16,color="burlywood",shape="triangle"];5512[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5512[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5512 -> 2298[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5513[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5513[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5513 -> 2299[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 556 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 556[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];555[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == vuz57) vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];555 -> 588[label="",style="solid", color="black", weight=3]; 172.97/119.05 557[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz51) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5514[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5514[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5514 -> 589[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5515[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5515[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5515 -> 590[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 558[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz51) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5516[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5516[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5516 -> 591[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5517[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5517[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5517 -> 592[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 559[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz51) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5518[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5518[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5518 -> 593[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5519[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5519[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5519 -> 594[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 560[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz51) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5520[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5520[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5520 -> 595[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5521[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5521[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5521 -> 596[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 561[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz52) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5522[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5522[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5522 -> 597[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5523[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5523[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5523 -> 598[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 562[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz52) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5524[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5524[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5524 -> 599[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5525[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5525[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5525 -> 600[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 563[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz52) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5526[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5526[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5526 -> 601[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5527[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5527[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5527 -> 602[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 564[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz52) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5528[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5528[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5528 -> 603[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5529[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5529[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5529 -> 604[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 566 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.05 566[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];565[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == vuz58) vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];565 -> 605[label="",style="solid", color="black", weight=3]; 172.97/119.05 567[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz55) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5530[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5530[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5530 -> 606[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5531[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5531[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5531 -> 607[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 568[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz55) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5532[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5532[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5532 -> 608[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5533[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5533[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5533 -> 609[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 569[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz55) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5534[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5534[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5534 -> 610[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5535[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5535[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5535 -> 611[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 570[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz55) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5536[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5536[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5536 -> 612[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5537[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5537[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5537 -> 613[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 571[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz56) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5538[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5538[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5538 -> 614[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5539[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5539[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5539 -> 615[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 572[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz56) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5540[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5540[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5540 -> 616[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5541[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5541[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5541 -> 617[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 573[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz56) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5542[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5542[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5542 -> 618[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5543[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5543[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5543 -> 619[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 574[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz56) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5544[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5544[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5544 -> 620[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5545[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5545[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5545 -> 621[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 575[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];575 -> 622[label="",style="solid", color="black", weight=3]; 172.97/119.05 576[label="Integer vuz30 * Integer (Pos Zero) `quot` reduce2D (Integer vuz31 * Integer (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];576 -> 623[label="",style="solid", color="black", weight=3]; 172.97/119.05 578[label="Integer vuz32 `quot` gcd (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];578 -> 625[label="",style="solid", color="black", weight=3]; 172.97/119.05 579[label="absReal0 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) True)",fontsize=16,color="black",shape="box"];579 -> 626[label="",style="solid", color="black", weight=3]; 172.97/119.05 2242[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5546[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5546[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5546 -> 2300[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5547[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5547[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5547 -> 2301[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 2243[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5548[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5548[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5548 -> 2302[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5549[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5549[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5549 -> 2303[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 584[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];584 -> 633[label="",style="solid", color="black", weight=3]; 172.97/119.05 585[label="signumReal0 (Neg (Succ vuz2600)) otherwise",fontsize=16,color="black",shape="box"];585 -> 634[label="",style="solid", color="black", weight=3]; 172.97/119.05 2298[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5550[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5550[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5550 -> 2333[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5551[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5551[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5551 -> 2334[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 2299[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5552[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5552[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5552 -> 2335[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5553[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5553[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5553 -> 2336[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 588[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt vuz49 vuz57) vuz50 vuz49)",fontsize=16,color="burlywood",shape="box"];5554[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5554[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5554 -> 637[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5555[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5555[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5555 -> 638[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 589[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5556[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];589 -> 5556[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5556 -> 639[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5557[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 5557[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5557 -> 640[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 590[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];590 -> 641[label="",style="solid", color="black", weight=3]; 172.97/119.05 591[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5558[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];591 -> 5558[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5558 -> 642[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5559[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 5559[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5559 -> 643[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 592[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5560[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];592 -> 5560[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5560 -> 644[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5561[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];592 -> 5561[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5561 -> 645[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 593[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];593 -> 646[label="",style="solid", color="black", weight=3]; 172.97/119.05 594[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5562[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];594 -> 5562[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5562 -> 647[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5563[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 5563[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5563 -> 648[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 595[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5564[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];595 -> 5564[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5564 -> 649[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5565[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];595 -> 5565[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5565 -> 650[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 596[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5566[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];596 -> 5566[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5566 -> 651[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5567[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 5567[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5567 -> 652[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 597[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5568[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];597 -> 5568[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5568 -> 653[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5569[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 5569[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5569 -> 654[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 598[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];598 -> 655[label="",style="solid", color="black", weight=3]; 172.97/119.05 599[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5570[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];599 -> 5570[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5570 -> 656[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5571[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];599 -> 5571[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5571 -> 657[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 600[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5572[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];600 -> 5572[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5572 -> 658[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5573[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];600 -> 5573[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5573 -> 659[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 601[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];601 -> 660[label="",style="solid", color="black", weight=3]; 172.97/119.05 602[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5574[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];602 -> 5574[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5574 -> 661[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5575[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];602 -> 5575[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5575 -> 662[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 603[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5576[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];603 -> 5576[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5576 -> 663[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5577[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];603 -> 5577[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5577 -> 664[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 604[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5578[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];604 -> 5578[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5578 -> 665[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5579[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];604 -> 5579[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5579 -> 666[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 605[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt vuz53 vuz58) vuz54 vuz53)",fontsize=16,color="burlywood",shape="box"];5580[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5580[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5580 -> 667[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5581[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5581[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5581 -> 668[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 606[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5582[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];606 -> 5582[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5582 -> 669[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5583[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];606 -> 5583[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5583 -> 670[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 607[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];607 -> 671[label="",style="solid", color="black", weight=3]; 172.97/119.05 608[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5584[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];608 -> 5584[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5584 -> 672[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5585[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];608 -> 5585[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5585 -> 673[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 609[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5586[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];609 -> 5586[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5586 -> 674[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5587[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 5587[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5587 -> 675[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 610[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];610 -> 676[label="",style="solid", color="black", weight=3]; 172.97/119.05 611[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5588[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];611 -> 5588[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5588 -> 677[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5589[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];611 -> 5589[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5589 -> 678[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 612[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5590[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];612 -> 5590[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5590 -> 679[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5591[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];612 -> 5591[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5591 -> 680[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 613[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5592[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];613 -> 5592[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5592 -> 681[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5593[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];613 -> 5593[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5593 -> 682[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 614[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5594[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];614 -> 5594[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5594 -> 683[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5595[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];614 -> 5595[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5595 -> 684[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 615[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];615 -> 685[label="",style="solid", color="black", weight=3]; 172.97/119.05 616[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5596[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];616 -> 5596[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5596 -> 686[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5597[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 5597[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5597 -> 687[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 617[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5598[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];617 -> 5598[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5598 -> 688[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5599[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 5599[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5599 -> 689[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 618[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];618 -> 690[label="",style="solid", color="black", weight=3]; 172.97/119.05 619[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5600[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];619 -> 5600[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5600 -> 691[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5601[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];619 -> 5601[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5601 -> 692[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 620[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5602[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];620 -> 5602[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5602 -> 693[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5603[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];620 -> 5603[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5603 -> 694[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 621[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5604[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];621 -> 5604[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5604 -> 695[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5605[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];621 -> 5605[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5605 -> 696[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 622[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];622 -> 697[label="",style="solid", color="black", weight=3]; 172.97/119.05 623 -> 698[label="",style="dashed", color="red", weight=0]; 172.97/119.05 623[label="Integer (primMulInt vuz30 (Pos Zero)) `quot` reduce2D (Integer (primMulInt vuz30 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];623 -> 699[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 623 -> 700[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 625[label="Integer vuz32 `quot` gcd3 (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];625 -> 701[label="",style="solid", color="black", weight=3]; 172.97/119.05 626[label="(`negate` Integer vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (`negate` Integer vuz32)",fontsize=16,color="black",shape="box"];626 -> 702[label="",style="solid", color="black", weight=3]; 172.97/119.05 2300[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2300 -> 2337[label="",style="solid", color="black", weight=3]; 172.97/119.05 2301[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) Zero == GT)",fontsize=16,color="black",shape="box"];2301 -> 2338[label="",style="solid", color="black", weight=3]; 172.97/119.05 2302[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2302 -> 2339[label="",style="solid", color="black", weight=3]; 172.97/119.05 2303[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2303 -> 2340[label="",style="solid", color="black", weight=3]; 172.97/119.05 633[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];634[label="signumReal0 (Neg (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];634 -> 711[label="",style="solid", color="black", weight=3]; 172.97/119.05 2333[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2333 -> 2371[label="",style="solid", color="black", weight=3]; 172.97/119.05 2334[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) Zero == GT)",fontsize=16,color="black",shape="box"];2334 -> 2372[label="",style="solid", color="black", weight=3]; 172.97/119.05 2335[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2335 -> 2373[label="",style="solid", color="black", weight=3]; 172.97/119.05 2336[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2336 -> 2374[label="",style="solid", color="black", weight=3]; 172.97/119.05 637[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz490) vuz57) vuz50 (Pos vuz490))",fontsize=16,color="burlywood",shape="box"];5606[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];637 -> 5606[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5606 -> 716[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5607[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];637 -> 5607[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5607 -> 717[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 638[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz490) vuz57) vuz50 (Neg vuz490))",fontsize=16,color="burlywood",shape="box"];5608[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];638 -> 5608[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5608 -> 718[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5609[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];638 -> 5609[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5609 -> 719[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 639[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5100))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];639 -> 720[label="",style="solid", color="black", weight=3]; 172.97/119.05 640[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];640 -> 721[label="",style="solid", color="black", weight=3]; 172.97/119.05 641 -> 808[label="",style="dashed", color="red", weight=0]; 172.97/119.05 641[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];641 -> 809[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 642[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];642 -> 723[label="",style="solid", color="black", weight=3]; 172.97/119.05 643[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];643 -> 724[label="",style="solid", color="black", weight=3]; 172.97/119.05 644[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];644 -> 725[label="",style="solid", color="black", weight=3]; 172.97/119.05 645[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];645 -> 726[label="",style="solid", color="black", weight=3]; 172.97/119.05 646 -> 817[label="",style="dashed", color="red", weight=0]; 172.97/119.05 646[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];646 -> 818[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 647[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5100))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];647 -> 728[label="",style="solid", color="black", weight=3]; 172.97/119.05 648[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];648 -> 729[label="",style="solid", color="black", weight=3]; 172.97/119.05 649[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];649 -> 730[label="",style="solid", color="black", weight=3]; 172.97/119.05 650[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];650 -> 731[label="",style="solid", color="black", weight=3]; 172.97/119.05 651[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];651 -> 732[label="",style="solid", color="black", weight=3]; 172.97/119.05 652[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];652 -> 733[label="",style="solid", color="black", weight=3]; 172.97/119.05 653[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5200))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];653 -> 734[label="",style="solid", color="black", weight=3]; 172.97/119.05 654[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];654 -> 735[label="",style="solid", color="black", weight=3]; 172.97/119.05 655 -> 825[label="",style="dashed", color="red", weight=0]; 172.97/119.05 655[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];655 -> 826[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 656[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];656 -> 737[label="",style="solid", color="black", weight=3]; 172.97/119.05 657[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];657 -> 738[label="",style="solid", color="black", weight=3]; 172.97/119.05 658[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];658 -> 739[label="",style="solid", color="black", weight=3]; 172.97/119.05 659[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];659 -> 740[label="",style="solid", color="black", weight=3]; 172.97/119.05 660 -> 834[label="",style="dashed", color="red", weight=0]; 172.97/119.05 660[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];660 -> 835[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 661[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5200))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];661 -> 742[label="",style="solid", color="black", weight=3]; 172.97/119.05 662[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];662 -> 743[label="",style="solid", color="black", weight=3]; 172.97/119.05 663[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];663 -> 744[label="",style="solid", color="black", weight=3]; 172.97/119.05 664[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];664 -> 745[label="",style="solid", color="black", weight=3]; 172.97/119.05 665[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];665 -> 746[label="",style="solid", color="black", weight=3]; 172.97/119.05 666[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];666 -> 747[label="",style="solid", color="black", weight=3]; 172.97/119.05 667[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz530) vuz58) vuz54 (Pos vuz530))",fontsize=16,color="burlywood",shape="box"];5610[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];667 -> 5610[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5610 -> 748[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5611[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];667 -> 5611[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5611 -> 749[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 668[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz530) vuz58) vuz54 (Neg vuz530))",fontsize=16,color="burlywood",shape="box"];5612[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];668 -> 5612[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5612 -> 750[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5613[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 5613[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5613 -> 751[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 669[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5500))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];669 -> 752[label="",style="solid", color="black", weight=3]; 172.97/119.05 670[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];670 -> 753[label="",style="solid", color="black", weight=3]; 172.97/119.05 671 -> 850[label="",style="dashed", color="red", weight=0]; 172.97/119.05 671[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];671 -> 851[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 672[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];672 -> 755[label="",style="solid", color="black", weight=3]; 172.97/119.05 673[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];673 -> 756[label="",style="solid", color="black", weight=3]; 172.97/119.05 674[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];674 -> 757[label="",style="solid", color="black", weight=3]; 172.97/119.05 675[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];675 -> 758[label="",style="solid", color="black", weight=3]; 172.97/119.05 676 -> 859[label="",style="dashed", color="red", weight=0]; 172.97/119.05 676[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];676 -> 860[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 677[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5500))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];677 -> 760[label="",style="solid", color="black", weight=3]; 172.97/119.05 678[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];678 -> 761[label="",style="solid", color="black", weight=3]; 172.97/119.05 679[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];679 -> 762[label="",style="solid", color="black", weight=3]; 172.97/119.05 680[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];680 -> 763[label="",style="solid", color="black", weight=3]; 172.97/119.05 681[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];681 -> 764[label="",style="solid", color="black", weight=3]; 172.97/119.05 682[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];682 -> 765[label="",style="solid", color="black", weight=3]; 172.97/119.05 683[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5600))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];683 -> 766[label="",style="solid", color="black", weight=3]; 172.97/119.05 684[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];684 -> 767[label="",style="solid", color="black", weight=3]; 172.97/119.05 685 -> 867[label="",style="dashed", color="red", weight=0]; 172.97/119.05 685[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];685 -> 868[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 686[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];686 -> 769[label="",style="solid", color="black", weight=3]; 172.97/119.05 687[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];687 -> 770[label="",style="solid", color="black", weight=3]; 172.97/119.05 688[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];688 -> 771[label="",style="solid", color="black", weight=3]; 172.97/119.05 689[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];689 -> 772[label="",style="solid", color="black", weight=3]; 172.97/119.05 690 -> 876[label="",style="dashed", color="red", weight=0]; 172.97/119.05 690[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];690 -> 877[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 691[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5600))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];691 -> 774[label="",style="solid", color="black", weight=3]; 172.97/119.05 692[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];692 -> 775[label="",style="solid", color="black", weight=3]; 172.97/119.05 693[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];693 -> 776[label="",style="solid", color="black", weight=3]; 172.97/119.05 694[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];694 -> 777[label="",style="solid", color="black", weight=3]; 172.97/119.05 695[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];695 -> 778[label="",style="solid", color="black", weight=3]; 172.97/119.05 696[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];696 -> 779[label="",style="solid", color="black", weight=3]; 172.97/119.05 697[label="Integer vuz30 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5614[label="vuz38/Pos vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5614[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5614 -> 780[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5615[label="vuz38/Neg vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5615[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5615 -> 781[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 699 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.05 699[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];699 -> 782[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 699 -> 783[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 700 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.05 700[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];700 -> 784[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 700 -> 785[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 698[label="Integer vuz59 `quot` reduce2D (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];698 -> 786[label="",style="solid", color="black", weight=3]; 172.97/119.05 701[label="Integer vuz32 `quot` gcd2 (vuz11 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5616[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];701 -> 5616[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5616 -> 787[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 702 -> 543[label="",style="dashed", color="red", weight=0]; 172.97/119.05 702[label="Integer (primNegInt vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer (primNegInt vuz32))",fontsize=16,color="magenta"];702 -> 788[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2337 -> 2211[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2337[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz1350 vuz1360 == GT)",fontsize=16,color="magenta"];2337 -> 2375[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2337 -> 2376[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2338[label="signumReal1 (Pos (Succ vuz134)) (GT == GT)",fontsize=16,color="black",shape="box"];2338 -> 2377[label="",style="solid", color="black", weight=3]; 172.97/119.05 2339[label="signumReal1 (Pos (Succ vuz134)) (LT == GT)",fontsize=16,color="black",shape="box"];2339 -> 2378[label="",style="solid", color="black", weight=3]; 172.97/119.05 2340[label="signumReal1 (Pos (Succ vuz134)) (EQ == GT)",fontsize=16,color="black",shape="box"];2340 -> 2379[label="",style="solid", color="black", weight=3]; 172.97/119.05 711[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];711 -> 795[label="",style="solid", color="black", weight=3]; 172.97/119.05 2371 -> 2267[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2371[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz1390 vuz1400 == GT)",fontsize=16,color="magenta"];2371 -> 2410[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2371 -> 2411[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2372[label="signumReal1 (Neg (Succ vuz138)) (GT == GT)",fontsize=16,color="black",shape="box"];2372 -> 2412[label="",style="solid", color="black", weight=3]; 172.97/119.05 2373[label="signumReal1 (Neg (Succ vuz138)) (LT == GT)",fontsize=16,color="black",shape="box"];2373 -> 2413[label="",style="solid", color="black", weight=3]; 172.97/119.05 2374[label="signumReal1 (Neg (Succ vuz138)) (EQ == GT)",fontsize=16,color="black",shape="box"];2374 -> 2414[label="",style="solid", color="black", weight=3]; 172.97/119.05 716[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) vuz57) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5617[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5617[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5617 -> 800[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5618[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5618[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5618 -> 801[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 717[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz57) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5619[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5619[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5619 -> 802[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5620[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5620[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5620 -> 803[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 718[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) vuz57) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5621[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5621[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5621 -> 804[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5622[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5622[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5622 -> 805[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 719[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz57) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5623[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5623[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5623 -> 806[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5624[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5624[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5624 -> 807[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 720 -> 808[label="",style="dashed", color="red", weight=0]; 172.97/119.05 720[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];720 -> 810[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 721 -> 808[label="",style="dashed", color="red", weight=0]; 172.97/119.05 721[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];721 -> 811[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 809[label="False",fontsize=16,color="green",shape="box"];808[label="primQuotInt (Pos vuz180) (gcd1 vuz61 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5625[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];808 -> 5625[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5625 -> 812[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5626[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];808 -> 5626[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5626 -> 813[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 723[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];723 -> 814[label="",style="solid", color="black", weight=3]; 172.97/119.05 724[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];724 -> 815[label="",style="solid", color="black", weight=3]; 172.97/119.05 725 -> 723[label="",style="dashed", color="red", weight=0]; 172.97/119.05 725[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];726 -> 724[label="",style="dashed", color="red", weight=0]; 172.97/119.05 726[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];818[label="False",fontsize=16,color="green",shape="box"];817[label="primQuotInt (Pos vuz180) (gcd1 vuz62 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5627[label="vuz62/False",fontsize=10,color="white",style="solid",shape="box"];817 -> 5627[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5627 -> 821[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5628[label="vuz62/True",fontsize=10,color="white",style="solid",shape="box"];817 -> 5628[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5628 -> 822[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 728 -> 817[label="",style="dashed", color="red", weight=0]; 172.97/119.05 728[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];728 -> 819[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 729 -> 817[label="",style="dashed", color="red", weight=0]; 172.97/119.05 729[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];729 -> 820[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 730[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];730 -> 823[label="",style="solid", color="black", weight=3]; 172.97/119.05 731[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];731 -> 824[label="",style="solid", color="black", weight=3]; 172.97/119.05 732 -> 730[label="",style="dashed", color="red", weight=0]; 172.97/119.05 732[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];733 -> 731[label="",style="dashed", color="red", weight=0]; 172.97/119.05 733[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];734 -> 825[label="",style="dashed", color="red", weight=0]; 172.97/119.05 734[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];734 -> 827[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 735 -> 825[label="",style="dashed", color="red", weight=0]; 172.97/119.05 735[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];735 -> 828[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 826[label="False",fontsize=16,color="green",shape="box"];825[label="primQuotInt (Pos vuz180) (gcd1 vuz63 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5629[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];825 -> 5629[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5629 -> 829[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5630[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];825 -> 5630[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5630 -> 830[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 737[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];737 -> 831[label="",style="solid", color="black", weight=3]; 172.97/119.05 738[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];738 -> 832[label="",style="solid", color="black", weight=3]; 172.97/119.05 739 -> 737[label="",style="dashed", color="red", weight=0]; 172.97/119.05 739[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];740 -> 738[label="",style="dashed", color="red", weight=0]; 172.97/119.05 740[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];835[label="False",fontsize=16,color="green",shape="box"];834[label="primQuotInt (Pos vuz180) (gcd1 vuz64 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5631[label="vuz64/False",fontsize=10,color="white",style="solid",shape="box"];834 -> 5631[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5631 -> 838[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5632[label="vuz64/True",fontsize=10,color="white",style="solid",shape="box"];834 -> 5632[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5632 -> 839[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 742 -> 834[label="",style="dashed", color="red", weight=0]; 172.97/119.05 742[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];742 -> 836[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 743 -> 834[label="",style="dashed", color="red", weight=0]; 172.97/119.05 743[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];743 -> 837[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 744[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];744 -> 840[label="",style="solid", color="black", weight=3]; 172.97/119.05 745[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];745 -> 841[label="",style="solid", color="black", weight=3]; 172.97/119.05 746 -> 744[label="",style="dashed", color="red", weight=0]; 172.97/119.05 746[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];747 -> 745[label="",style="dashed", color="red", weight=0]; 172.97/119.05 747[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];748[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) vuz58) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5633[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5633[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5633 -> 842[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5634[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5634[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5634 -> 843[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 749[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz58) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5635[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5635[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5635 -> 844[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5636[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5636[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5636 -> 845[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 750[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) vuz58) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5637[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5637[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5637 -> 846[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5638[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5638[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5638 -> 847[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 751[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz58) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5639[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5639[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5639 -> 848[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5640[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5640[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5640 -> 849[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 752 -> 850[label="",style="dashed", color="red", weight=0]; 172.97/119.05 752[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];752 -> 852[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 753 -> 850[label="",style="dashed", color="red", weight=0]; 172.97/119.05 753[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];753 -> 853[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 851[label="False",fontsize=16,color="green",shape="box"];850[label="primQuotInt (Neg vuz180) (gcd1 vuz65 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5641[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];850 -> 5641[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5641 -> 854[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5642[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];850 -> 5642[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5642 -> 855[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 755[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];755 -> 856[label="",style="solid", color="black", weight=3]; 172.97/119.05 756[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];756 -> 857[label="",style="solid", color="black", weight=3]; 172.97/119.05 757 -> 755[label="",style="dashed", color="red", weight=0]; 172.97/119.05 757[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];758 -> 756[label="",style="dashed", color="red", weight=0]; 172.97/119.05 758[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];860[label="False",fontsize=16,color="green",shape="box"];859[label="primQuotInt (Neg vuz180) (gcd1 vuz66 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5643[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];859 -> 5643[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5643 -> 863[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5644[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];859 -> 5644[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5644 -> 864[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 760 -> 859[label="",style="dashed", color="red", weight=0]; 172.97/119.05 760[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];760 -> 861[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 761 -> 859[label="",style="dashed", color="red", weight=0]; 172.97/119.05 761[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];761 -> 862[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 762[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];762 -> 865[label="",style="solid", color="black", weight=3]; 172.97/119.05 763[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];763 -> 866[label="",style="solid", color="black", weight=3]; 172.97/119.05 764 -> 762[label="",style="dashed", color="red", weight=0]; 172.97/119.05 764[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];765 -> 763[label="",style="dashed", color="red", weight=0]; 172.97/119.05 765[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];766 -> 867[label="",style="dashed", color="red", weight=0]; 172.97/119.05 766[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];766 -> 869[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 767 -> 867[label="",style="dashed", color="red", weight=0]; 172.97/119.05 767[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];767 -> 870[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 868[label="False",fontsize=16,color="green",shape="box"];867[label="primQuotInt (Neg vuz180) (gcd1 vuz67 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5645[label="vuz67/False",fontsize=10,color="white",style="solid",shape="box"];867 -> 5645[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5645 -> 871[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5646[label="vuz67/True",fontsize=10,color="white",style="solid",shape="box"];867 -> 5646[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5646 -> 872[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 769[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];769 -> 873[label="",style="solid", color="black", weight=3]; 172.97/119.05 770[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];770 -> 874[label="",style="solid", color="black", weight=3]; 172.97/119.05 771 -> 769[label="",style="dashed", color="red", weight=0]; 172.97/119.05 771[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];772 -> 770[label="",style="dashed", color="red", weight=0]; 172.97/119.05 772[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];877[label="False",fontsize=16,color="green",shape="box"];876[label="primQuotInt (Neg vuz180) (gcd1 vuz68 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5647[label="vuz68/False",fontsize=10,color="white",style="solid",shape="box"];876 -> 5647[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5647 -> 880[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5648[label="vuz68/True",fontsize=10,color="white",style="solid",shape="box"];876 -> 5648[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5648 -> 881[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 774 -> 876[label="",style="dashed", color="red", weight=0]; 172.97/119.05 774[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];774 -> 878[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 775 -> 876[label="",style="dashed", color="red", weight=0]; 172.97/119.05 775[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];775 -> 879[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 776[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];776 -> 882[label="",style="solid", color="black", weight=3]; 172.97/119.05 777[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];777 -> 883[label="",style="solid", color="black", weight=3]; 172.97/119.05 778 -> 776[label="",style="dashed", color="red", weight=0]; 172.97/119.05 778[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];779 -> 777[label="",style="dashed", color="red", weight=0]; 172.97/119.05 779[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];780[label="Integer vuz30 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5649[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];780 -> 5649[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5649 -> 884[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5650[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 5650[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5650 -> 885[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 781[label="Integer vuz30 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5651[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];781 -> 5651[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5651 -> 886[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5652[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];781 -> 5652[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5652 -> 887[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 782[label="Pos Zero",fontsize=16,color="green",shape="box"];783[label="vuz30",fontsize=16,color="green",shape="box"];784[label="Pos Zero",fontsize=16,color="green",shape="box"];785[label="vuz30",fontsize=16,color="green",shape="box"];786[label="Integer vuz59 `quot` gcd (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];786 -> 888[label="",style="solid", color="black", weight=3]; 172.97/119.05 787[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5653[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];787 -> 5653[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5653 -> 889[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 788 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.05 788[label="primNegInt vuz32",fontsize=16,color="magenta"];788 -> 890[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2375[label="vuz1350",fontsize=16,color="green",shape="box"];2376[label="vuz1360",fontsize=16,color="green",shape="box"];2377[label="signumReal1 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2377 -> 2415[label="",style="solid", color="black", weight=3]; 172.97/119.05 2378[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="black",shape="triangle"];2378 -> 2416[label="",style="solid", color="black", weight=3]; 172.97/119.05 2379 -> 2378[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2379[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="magenta"];795[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];2410[label="vuz1390",fontsize=16,color="green",shape="box"];2411[label="vuz1400",fontsize=16,color="green",shape="box"];2412[label="signumReal1 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2412 -> 2449[label="",style="solid", color="black", weight=3]; 172.97/119.05 2413[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="black",shape="triangle"];2413 -> 2450[label="",style="solid", color="black", weight=3]; 172.97/119.05 2414 -> 2413[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2414[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="magenta"];800[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5654[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];800 -> 5654[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5654 -> 901[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5655[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 5655[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5655 -> 902[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 801[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Neg vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];801 -> 903[label="",style="solid", color="black", weight=3]; 172.97/119.05 802[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5656[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];802 -> 5656[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5656 -> 904[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5657[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];802 -> 5657[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5657 -> 905[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 803[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5658[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];803 -> 5658[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5658 -> 906[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5659[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];803 -> 5659[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5659 -> 907[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 804[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Pos vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];804 -> 908[label="",style="solid", color="black", weight=3]; 172.97/119.05 805[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5660[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];805 -> 5660[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5660 -> 909[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5661[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 5661[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5661 -> 910[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 806[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5662[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];806 -> 5662[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5662 -> 911[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5663[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 5663[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5663 -> 912[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 807[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5664[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];807 -> 5664[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5664 -> 913[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5665[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];807 -> 5665[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5665 -> 914[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 810 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 810[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];810 -> 915[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 810 -> 916[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 811[label="False",fontsize=16,color="green",shape="box"];812[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];812 -> 917[label="",style="solid", color="black", weight=3]; 172.97/119.05 813[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];813 -> 918[label="",style="solid", color="black", weight=3]; 172.97/119.05 814 -> 407[label="",style="dashed", color="red", weight=0]; 172.97/119.05 814[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];814 -> 919[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 815[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="black",shape="triangle"];815 -> 920[label="",style="solid", color="black", weight=3]; 172.97/119.05 821[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];821 -> 921[label="",style="solid", color="black", weight=3]; 172.97/119.05 822[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];822 -> 922[label="",style="solid", color="black", weight=3]; 172.97/119.05 819 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 819[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];819 -> 923[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 819 -> 924[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 820[label="False",fontsize=16,color="green",shape="box"];823 -> 407[label="",style="dashed", color="red", weight=0]; 172.97/119.05 823[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];823 -> 925[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 824 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 824[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];827 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 827[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];827 -> 926[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 827 -> 927[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 828[label="False",fontsize=16,color="green",shape="box"];829[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];829 -> 928[label="",style="solid", color="black", weight=3]; 172.97/119.05 830[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];830 -> 929[label="",style="solid", color="black", weight=3]; 172.97/119.05 831 -> 410[label="",style="dashed", color="red", weight=0]; 172.97/119.05 831[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];831 -> 930[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 832 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 832[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];838[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];838 -> 931[label="",style="solid", color="black", weight=3]; 172.97/119.05 839[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];839 -> 932[label="",style="solid", color="black", weight=3]; 172.97/119.05 836 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 836[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];836 -> 933[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 836 -> 934[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 837[label="False",fontsize=16,color="green",shape="box"];840 -> 410[label="",style="dashed", color="red", weight=0]; 172.97/119.05 840[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];840 -> 935[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 841 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 841[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];842[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5666[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];842 -> 5666[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5666 -> 936[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5667[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];842 -> 5667[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5667 -> 937[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 843[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Neg vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];843 -> 938[label="",style="solid", color="black", weight=3]; 172.97/119.05 844[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5668[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];844 -> 5668[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5668 -> 939[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5669[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];844 -> 5669[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5669 -> 940[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 845[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5670[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];845 -> 5670[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5670 -> 941[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5671[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];845 -> 5671[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5671 -> 942[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 846[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Pos vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];846 -> 943[label="",style="solid", color="black", weight=3]; 172.97/119.05 847[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5672[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];847 -> 5672[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5672 -> 944[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5673[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 5673[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5673 -> 945[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 848[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5674[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];848 -> 5674[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5674 -> 946[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5675[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];848 -> 5675[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5675 -> 947[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 849[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5676[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];849 -> 5676[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5676 -> 948[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5677[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];849 -> 5677[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5677 -> 949[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 852 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 852[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];852 -> 950[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 852 -> 951[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 853[label="False",fontsize=16,color="green",shape="box"];854[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];854 -> 952[label="",style="solid", color="black", weight=3]; 172.97/119.05 855[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];855 -> 953[label="",style="solid", color="black", weight=3]; 172.97/119.05 856 -> 413[label="",style="dashed", color="red", weight=0]; 172.97/119.05 856[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];856 -> 954[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 857[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="black",shape="triangle"];857 -> 955[label="",style="solid", color="black", weight=3]; 172.97/119.05 863[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];863 -> 956[label="",style="solid", color="black", weight=3]; 172.97/119.05 864[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];864 -> 957[label="",style="solid", color="black", weight=3]; 172.97/119.05 861 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 861[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];861 -> 958[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 861 -> 959[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 862[label="False",fontsize=16,color="green",shape="box"];865 -> 413[label="",style="dashed", color="red", weight=0]; 172.97/119.05 865[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];865 -> 960[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 866 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 866[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];869 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 869[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];869 -> 961[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 869 -> 962[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 870[label="False",fontsize=16,color="green",shape="box"];871[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];871 -> 963[label="",style="solid", color="black", weight=3]; 172.97/119.05 872[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];872 -> 964[label="",style="solid", color="black", weight=3]; 172.97/119.05 873 -> 416[label="",style="dashed", color="red", weight=0]; 172.97/119.05 873[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];873 -> 965[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 874 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 874[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];880[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];880 -> 968[label="",style="solid", color="black", weight=3]; 172.97/119.05 881[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];881 -> 969[label="",style="solid", color="black", weight=3]; 172.97/119.05 878 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 878[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];878 -> 966[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 878 -> 967[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 879[label="False",fontsize=16,color="green",shape="box"];882 -> 416[label="",style="dashed", color="red", weight=0]; 172.97/119.05 882[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];882 -> 970[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 883 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 883[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];884[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];884 -> 971[label="",style="solid", color="black", weight=3]; 172.97/119.05 885[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];885 -> 972[label="",style="solid", color="black", weight=3]; 172.97/119.05 886[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];886 -> 973[label="",style="solid", color="black", weight=3]; 172.97/119.05 887[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];887 -> 974[label="",style="solid", color="black", weight=3]; 172.97/119.05 888[label="Integer vuz59 `quot` gcd3 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];888 -> 975[label="",style="solid", color="black", weight=3]; 172.97/119.05 889[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * Integer vuz120 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * Integer vuz120 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];889 -> 976[label="",style="solid", color="black", weight=3]; 172.97/119.05 890[label="vuz32",fontsize=16,color="green",shape="box"];2415[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5678[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5678[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5678 -> 2451[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5679[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5679[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5679 -> 2452[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5680[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5680[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5680 -> 2453[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5681[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5681[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5681 -> 2454[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5682[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5682[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5682 -> 2455[label="",style="solid", color="blue", weight=3]; 172.97/119.05 2416[label="signumReal0 (Pos (Succ vuz134)) otherwise",fontsize=16,color="black",shape="box"];2416 -> 2456[label="",style="solid", color="black", weight=3]; 172.97/119.05 2449[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5683[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5683[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5683 -> 2498[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5684[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5684[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5684 -> 2499[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5685[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5685[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5685 -> 2500[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5686[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5686[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5686 -> 2501[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5687[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5687[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5687 -> 2502[label="",style="solid", color="blue", weight=3]; 172.97/119.05 2450[label="signumReal0 (Neg (Succ vuz138)) otherwise",fontsize=16,color="black",shape="box"];2450 -> 2503[label="",style="solid", color="black", weight=3]; 172.97/119.05 901[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos (Succ vuz5700))) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];901 -> 988[label="",style="solid", color="black", weight=3]; 172.97/119.05 902[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos Zero)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];902 -> 989[label="",style="solid", color="black", weight=3]; 172.97/119.05 903 -> 1042[label="",style="dashed", color="red", weight=0]; 172.97/119.05 903[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];903 -> 1043[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 904[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];904 -> 991[label="",style="solid", color="black", weight=3]; 172.97/119.05 905[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];905 -> 992[label="",style="solid", color="black", weight=3]; 172.97/119.05 906[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];906 -> 993[label="",style="solid", color="black", weight=3]; 172.97/119.05 907[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];907 -> 994[label="",style="solid", color="black", weight=3]; 172.97/119.05 908 -> 1051[label="",style="dashed", color="red", weight=0]; 172.97/119.05 908[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];908 -> 1052[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 909[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg (Succ vuz5700))) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];909 -> 996[label="",style="solid", color="black", weight=3]; 172.97/119.05 910[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg Zero)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];910 -> 997[label="",style="solid", color="black", weight=3]; 172.97/119.05 911[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];911 -> 998[label="",style="solid", color="black", weight=3]; 172.97/119.05 912[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];912 -> 999[label="",style="solid", color="black", weight=3]; 172.97/119.05 913[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];913 -> 1000[label="",style="solid", color="black", weight=3]; 172.97/119.05 914[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];914 -> 1001[label="",style="solid", color="black", weight=3]; 172.97/119.05 915[label="vuz5100",fontsize=16,color="green",shape="box"];916[label="vuz2700",fontsize=16,color="green",shape="box"];917 -> 407[label="",style="dashed", color="red", weight=0]; 172.97/119.05 917[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];917 -> 1002[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 918 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 918[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];919[label="Pos Zero",fontsize=16,color="green",shape="box"];920[label="error []",fontsize=16,color="red",shape="box"];921 -> 407[label="",style="dashed", color="red", weight=0]; 172.97/119.05 921[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];921 -> 1003[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 922 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 922[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];923[label="vuz5100",fontsize=16,color="green",shape="box"];924[label="vuz2700",fontsize=16,color="green",shape="box"];925[label="Neg Zero",fontsize=16,color="green",shape="box"];926[label="vuz5200",fontsize=16,color="green",shape="box"];927[label="vuz2700",fontsize=16,color="green",shape="box"];928 -> 410[label="",style="dashed", color="red", weight=0]; 172.97/119.05 928[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];928 -> 1004[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 929 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 929[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];930[label="Pos Zero",fontsize=16,color="green",shape="box"];931 -> 410[label="",style="dashed", color="red", weight=0]; 172.97/119.05 931[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];931 -> 1005[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 932 -> 815[label="",style="dashed", color="red", weight=0]; 172.97/119.05 932[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];933[label="vuz5200",fontsize=16,color="green",shape="box"];934[label="vuz2700",fontsize=16,color="green",shape="box"];935[label="Neg Zero",fontsize=16,color="green",shape="box"];936[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos (Succ vuz5800))) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];936 -> 1006[label="",style="solid", color="black", weight=3]; 172.97/119.05 937[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos Zero)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];937 -> 1007[label="",style="solid", color="black", weight=3]; 172.97/119.05 938 -> 1059[label="",style="dashed", color="red", weight=0]; 172.97/119.05 938[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];938 -> 1060[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 939[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];939 -> 1009[label="",style="solid", color="black", weight=3]; 172.97/119.05 940[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];940 -> 1010[label="",style="solid", color="black", weight=3]; 172.97/119.05 941[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];941 -> 1011[label="",style="solid", color="black", weight=3]; 172.97/119.05 942[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];942 -> 1012[label="",style="solid", color="black", weight=3]; 172.97/119.05 943 -> 1068[label="",style="dashed", color="red", weight=0]; 172.97/119.05 943[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];943 -> 1069[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 944[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg (Succ vuz5800))) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];944 -> 1014[label="",style="solid", color="black", weight=3]; 172.97/119.05 945[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg Zero)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];945 -> 1015[label="",style="solid", color="black", weight=3]; 172.97/119.05 946[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];946 -> 1016[label="",style="solid", color="black", weight=3]; 172.97/119.05 947[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];947 -> 1017[label="",style="solid", color="black", weight=3]; 172.97/119.05 948[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];948 -> 1018[label="",style="solid", color="black", weight=3]; 172.97/119.05 949[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];949 -> 1019[label="",style="solid", color="black", weight=3]; 172.97/119.05 950[label="vuz5500",fontsize=16,color="green",shape="box"];951[label="vuz2700",fontsize=16,color="green",shape="box"];952 -> 413[label="",style="dashed", color="red", weight=0]; 172.97/119.05 952[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];952 -> 1020[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 953 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 953[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];954[label="Pos Zero",fontsize=16,color="green",shape="box"];955[label="error []",fontsize=16,color="red",shape="box"];956 -> 413[label="",style="dashed", color="red", weight=0]; 172.97/119.05 956[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];956 -> 1021[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 957 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 957[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];958[label="vuz5500",fontsize=16,color="green",shape="box"];959[label="vuz2700",fontsize=16,color="green",shape="box"];960[label="Neg Zero",fontsize=16,color="green",shape="box"];961[label="vuz5600",fontsize=16,color="green",shape="box"];962[label="vuz2700",fontsize=16,color="green",shape="box"];963 -> 416[label="",style="dashed", color="red", weight=0]; 172.97/119.05 963[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];963 -> 1022[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 964 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 964[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];965[label="Pos Zero",fontsize=16,color="green",shape="box"];968 -> 416[label="",style="dashed", color="red", weight=0]; 172.97/119.05 968[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];968 -> 1023[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 969 -> 857[label="",style="dashed", color="red", weight=0]; 172.97/119.05 969[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];966[label="vuz5600",fontsize=16,color="green",shape="box"];967[label="vuz2700",fontsize=16,color="green",shape="box"];970[label="Neg Zero",fontsize=16,color="green",shape="box"];971[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];971 -> 1024[label="",style="solid", color="black", weight=3]; 172.97/119.05 972[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];972 -> 1025[label="",style="solid", color="black", weight=3]; 172.97/119.05 973[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];973 -> 1026[label="",style="solid", color="black", weight=3]; 172.97/119.05 974[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];974 -> 1027[label="",style="solid", color="black", weight=3]; 172.97/119.05 975 -> 1028[label="",style="dashed", color="red", weight=0]; 172.97/119.05 975[label="Integer vuz59 `quot` gcd2 (Integer vuz60 == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="magenta"];975 -> 1029[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 976 -> 1893[label="",style="dashed", color="red", weight=0]; 172.97/119.05 976[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="magenta"];976 -> 1894[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 976 -> 1895[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 976 -> 1896[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 976 -> 1897[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 2451 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2451[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2452 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2452[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2453[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2453 -> 2504[label="",style="solid", color="black", weight=3]; 172.97/119.05 2454[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2454 -> 2505[label="",style="solid", color="black", weight=3]; 172.97/119.05 2455[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2455 -> 2506[label="",style="solid", color="black", weight=3]; 172.97/119.05 2456[label="signumReal0 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2456 -> 2507[label="",style="solid", color="black", weight=3]; 172.97/119.05 2498 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2498[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2499 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2499[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2500 -> 2453[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2500[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2501 -> 2454[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2501[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2502 -> 2455[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2502[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2503[label="signumReal0 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2503 -> 2559[label="",style="solid", color="black", weight=3]; 172.97/119.05 988 -> 1042[label="",style="dashed", color="red", weight=0]; 172.97/119.05 988[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];988 -> 1044[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 989 -> 1042[label="",style="dashed", color="red", weight=0]; 172.97/119.05 989[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];989 -> 1045[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1043[label="False",fontsize=16,color="green",shape="box"];1042[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz72 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5688[label="vuz72/False",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5688[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5688 -> 1046[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5689[label="vuz72/True",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5689[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5689 -> 1047[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 991[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];991 -> 1048[label="",style="solid", color="black", weight=3]; 172.97/119.05 992[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];992 -> 1049[label="",style="solid", color="black", weight=3]; 172.97/119.05 993 -> 991[label="",style="dashed", color="red", weight=0]; 172.97/119.05 993[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="magenta"];994 -> 992[label="",style="dashed", color="red", weight=0]; 172.97/119.05 994[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="magenta"];1052[label="False",fontsize=16,color="green",shape="box"];1051[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz73 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5690[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5690[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5690 -> 1055[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5691[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5691[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5691 -> 1056[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 996 -> 1051[label="",style="dashed", color="red", weight=0]; 172.97/119.05 996[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];996 -> 1053[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 997 -> 1051[label="",style="dashed", color="red", weight=0]; 172.97/119.05 997[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];997 -> 1054[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 998[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];998 -> 1057[label="",style="solid", color="black", weight=3]; 172.97/119.05 999[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];999 -> 1058[label="",style="solid", color="black", weight=3]; 172.97/119.05 1000 -> 998[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1000[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="magenta"];1001 -> 999[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1001[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="magenta"];1002[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1003[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1004[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1005[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1006 -> 1059[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1006[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1006 -> 1061[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1007 -> 1059[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1007[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1007 -> 1062[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1060[label="False",fontsize=16,color="green",shape="box"];1059[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz74 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5692[label="vuz74/False",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5692[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5692 -> 1063[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5693[label="vuz74/True",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5693[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5693 -> 1064[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1009[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1009 -> 1065[label="",style="solid", color="black", weight=3]; 172.97/119.05 1010[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1010 -> 1066[label="",style="solid", color="black", weight=3]; 172.97/119.05 1011 -> 1009[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1011[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="magenta"];1012 -> 1010[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1012[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="magenta"];1069[label="False",fontsize=16,color="green",shape="box"];1068[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz75 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5694[label="vuz75/False",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5694[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5694 -> 1072[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5695[label="vuz75/True",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5695[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5695 -> 1073[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1014 -> 1068[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1014[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1014 -> 1070[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1015 -> 1068[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1015[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1015 -> 1071[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1016[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1016 -> 1074[label="",style="solid", color="black", weight=3]; 172.97/119.05 1017[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1017 -> 1075[label="",style="solid", color="black", weight=3]; 172.97/119.05 1018 -> 1016[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1018[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="magenta"];1019 -> 1017[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1019[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="magenta"];1020[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1021[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1022[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1023[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1024[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1024 -> 1076[label="",style="solid", color="black", weight=3]; 172.97/119.05 1025[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1025 -> 1077[label="",style="solid", color="black", weight=3]; 172.97/119.05 1026[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1026 -> 1078[label="",style="solid", color="black", weight=3]; 172.97/119.05 1027[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1027 -> 1079[label="",style="solid", color="black", weight=3]; 172.97/119.05 1029 -> 331[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1029[label="Integer vuz60 == fromInt (Pos Zero)",fontsize=16,color="magenta"];1029 -> 1080[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1028[label="Integer vuz59 `quot` gcd2 vuz69 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="triangle"];5696[label="vuz69/False",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5696[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5696 -> 1081[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5697[label="vuz69/True",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5697[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5697 -> 1082[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1894[label="signum (Integer vuz34)",fontsize=16,color="black",shape="triangle"];1894 -> 1966[label="",style="solid", color="black", weight=3]; 172.97/119.05 1895 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1895[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1895 -> 1967[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1895 -> 1968[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1896 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1896[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1896 -> 1969[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1896 -> 1970[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1897 -> 1894[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1897[label="signum (Integer vuz34)",fontsize=16,color="magenta"];1893[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * vuz104 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5698[label="vuz104/Integer vuz1040",fontsize=10,color="white",style="solid",shape="box"];1893 -> 5698[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5698 -> 1971[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 2310[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2310 -> 2349[label="",style="solid", color="black", weight=3]; 172.97/119.05 2504[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2504 -> 2560[label="",style="solid", color="black", weight=3]; 172.97/119.05 2505[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2505 -> 2561[label="",style="solid", color="black", weight=3]; 172.97/119.05 2506[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2506 -> 2562[label="",style="solid", color="black", weight=3]; 172.97/119.05 2507[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5699[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5699[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5699 -> 2563[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5700[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5700[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5700 -> 2564[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5701[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5701[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5701 -> 2565[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5702[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5702[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5702 -> 2566[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5703[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5703[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5703 -> 2567[label="",style="solid", color="blue", weight=3]; 172.97/119.05 2559[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5704[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5704[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5704 -> 2600[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5705[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5705[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5705 -> 2601[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5706[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5706[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5706 -> 2602[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5707[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5707[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5707 -> 2603[label="",style="solid", color="blue", weight=3]; 172.97/119.05 5708[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5708[label="",style="solid", color="blue", weight=9]; 172.97/119.05 5708 -> 2604[label="",style="solid", color="blue", weight=3]; 172.97/119.05 1044 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1044[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1044 -> 1099[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1044 -> 1100[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1045[label="False",fontsize=16,color="green",shape="box"];1046[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1046 -> 1101[label="",style="solid", color="black", weight=3]; 172.97/119.05 1047[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1047 -> 1102[label="",style="solid", color="black", weight=3]; 172.97/119.05 1048[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];1048 -> 1103[label="",style="solid", color="black", weight=3]; 172.97/119.05 1049[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="burlywood",shape="triangle"];5709[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5709[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5709 -> 1104[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5710[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5710[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5710 -> 1105[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1055[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1055 -> 1106[label="",style="solid", color="black", weight=3]; 172.97/119.05 1056[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1056 -> 1107[label="",style="solid", color="black", weight=3]; 172.97/119.05 1053 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1053[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1053 -> 1108[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1053 -> 1109[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1054[label="False",fontsize=16,color="green",shape="box"];1057 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1057[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg Zero))",fontsize=16,color="magenta"];1057 -> 1110[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1058 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1058[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1061 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1061[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1061 -> 1111[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1061 -> 1112[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1062[label="False",fontsize=16,color="green",shape="box"];1063[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1063 -> 1113[label="",style="solid", color="black", weight=3]; 172.97/119.05 1064[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1064 -> 1114[label="",style="solid", color="black", weight=3]; 172.97/119.05 1065[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];1065 -> 1115[label="",style="solid", color="black", weight=3]; 172.97/119.05 1066[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="burlywood",shape="triangle"];5711[label="vuz54/Pos vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5711[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5711 -> 1116[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5712[label="vuz54/Neg vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5712[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5712 -> 1117[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1072[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1072 -> 1120[label="",style="solid", color="black", weight=3]; 172.97/119.05 1073[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1073 -> 1121[label="",style="solid", color="black", weight=3]; 172.97/119.05 1070 -> 547[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1070[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1070 -> 1118[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1070 -> 1119[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1071[label="False",fontsize=16,color="green",shape="box"];1074 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1074[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg Zero))",fontsize=16,color="magenta"];1074 -> 1122[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1075 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1075[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1076[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1076 -> 1123[label="",style="solid", color="black", weight=3]; 172.97/119.05 1077[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1077 -> 1124[label="",style="solid", color="black", weight=3]; 172.97/119.05 1078[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1078 -> 1125[label="",style="solid", color="black", weight=3]; 172.97/119.05 1079[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1079 -> 1126[label="",style="solid", color="black", weight=3]; 172.97/119.05 1080[label="vuz60",fontsize=16,color="green",shape="box"];1081[label="Integer vuz59 `quot` gcd2 False (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1081 -> 1127[label="",style="solid", color="black", weight=3]; 172.97/119.05 1082[label="Integer vuz59 `quot` gcd2 True (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1082 -> 1128[label="",style="solid", color="black", weight=3]; 172.97/119.05 1966[label="signumReal (Integer vuz34)",fontsize=16,color="black",shape="box"];1966 -> 1987[label="",style="solid", color="black", weight=3]; 172.97/119.05 1967[label="vuz120",fontsize=16,color="green",shape="box"];1968[label="vuz110",fontsize=16,color="green",shape="box"];1969[label="vuz120",fontsize=16,color="green",shape="box"];1970[label="vuz110",fontsize=16,color="green",shape="box"];1971[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * Integer vuz1040 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="black",shape="box"];1971 -> 1988[label="",style="solid", color="black", weight=3]; 172.97/119.05 2349[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2560[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2560 -> 2605[label="",style="dashed", color="green", weight=3]; 172.97/119.05 2560 -> 2606[label="",style="dashed", color="green", weight=3]; 172.97/119.05 2561[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2563 -> 711[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2563[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2564 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2564[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2565[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2565 -> 2607[label="",style="solid", color="black", weight=3]; 172.97/119.05 2566[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2566 -> 2608[label="",style="solid", color="black", weight=3]; 172.97/119.05 2567[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2567 -> 2609[label="",style="solid", color="black", weight=3]; 172.97/119.05 2600 -> 711[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2600[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2601 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2601[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2602 -> 2565[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2602[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2603 -> 2566[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2603[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2604 -> 2567[label="",style="dashed", color="red", weight=0]; 172.97/119.05 2604[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];1099[label="vuz5700",fontsize=16,color="green",shape="box"];1100[label="vuz4900",fontsize=16,color="green",shape="box"];1101 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1101[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];1101 -> 1141[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1102 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1102[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1103 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1103[label="primQuotInt (Pos vuz180) (gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero))",fontsize=16,color="magenta"];1103 -> 1142[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1104[label="primQuotInt (Pos vuz180) (Pos vuz500)",fontsize=16,color="burlywood",shape="box"];5713[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5713[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5713 -> 1143[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5714[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5714[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5714 -> 1144[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1105[label="primQuotInt (Pos vuz180) (Neg vuz500)",fontsize=16,color="burlywood",shape="box"];5715[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5715[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5715 -> 1145[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5716[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5716[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5716 -> 1146[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1106 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1106[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];1106 -> 1147[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1107 -> 1049[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1107[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1108[label="vuz5700",fontsize=16,color="green",shape="box"];1109[label="vuz4900",fontsize=16,color="green",shape="box"];1110 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1110[label="gcd0Gcd'0 vuz50 (Neg Zero)",fontsize=16,color="magenta"];1110 -> 2056[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1110 -> 2057[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1111[label="vuz5800",fontsize=16,color="green",shape="box"];1112[label="vuz5300",fontsize=16,color="green",shape="box"];1113 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1113[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1113 -> 1149[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1114 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1114[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1115 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1115[label="primQuotInt (Neg vuz180) (gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero))",fontsize=16,color="magenta"];1115 -> 1150[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1116[label="primQuotInt (Neg vuz180) (Pos vuz540)",fontsize=16,color="burlywood",shape="box"];5717[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5717[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5717 -> 1151[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5718[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5718[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5718 -> 1152[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1117[label="primQuotInt (Neg vuz180) (Neg vuz540)",fontsize=16,color="burlywood",shape="box"];5719[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5719[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5719 -> 1153[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 5720[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5720[label="",style="solid", color="burlywood", weight=9]; 172.97/119.05 5720 -> 1154[label="",style="solid", color="burlywood", weight=3]; 172.97/119.05 1120 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1120[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1120 -> 1155[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1121 -> 1066[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1121[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1118[label="vuz5800",fontsize=16,color="green",shape="box"];1119[label="vuz5300",fontsize=16,color="green",shape="box"];1122 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.05 1122[label="gcd0Gcd'0 vuz54 (Neg Zero)",fontsize=16,color="magenta"];1122 -> 2058[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1122 -> 2059[label="",style="dashed", color="magenta", weight=3]; 172.97/119.05 1123[label="Integer vuz30 * fromInt (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1123 -> 1157[label="",style="solid", color="black", weight=3]; 172.97/119.05 1124[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1124 -> 1158[label="",style="solid", color="black", weight=3]; 172.97/119.05 1125[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1125 -> 1159[label="",style="solid", color="black", weight=3]; 172.97/119.05 1126[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1126 -> 1160[label="",style="solid", color="black", weight=3]; 172.97/119.05 1127[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1127 -> 1161[label="",style="solid", color="black", weight=3]; 172.97/119.06 1128[label="Integer vuz59 `quot` gcd1 (abs (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1128 -> 1162[label="",style="solid", color="black", weight=3]; 172.97/119.06 1987[label="signumReal3 (Integer vuz34)",fontsize=16,color="black",shape="box"];1987 -> 2010[label="",style="solid", color="black", weight=3]; 172.97/119.06 1988 -> 2011[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1988[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)) (Integer (primMulInt vuz71 vuz1040)) (Integer vuz32)",fontsize=16,color="magenta"];1988 -> 2012[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1988 -> 2013[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2605[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5721[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5721[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5721 -> 2644[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5722[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5722[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5722 -> 2645[label="",style="solid", color="blue", weight=3]; 172.97/119.06 2606[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5723[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5723[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5723 -> 2646[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5724[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5724[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5724 -> 2647[label="",style="solid", color="blue", weight=3]; 172.97/119.06 2387[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2387 -> 2424[label="",style="solid", color="black", weight=3]; 172.97/119.06 2607[label="intToRatio (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2607 -> 2648[label="",style="solid", color="black", weight=3]; 172.97/119.06 2608[label="primIntToDouble (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2608 -> 2649[label="",style="solid", color="black", weight=3]; 172.97/119.06 2609[label="primIntToFloat (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2609 -> 2650[label="",style="solid", color="black", weight=3]; 172.97/119.06 1141 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1141[label="gcd0Gcd'0 vuz50 (Pos (Succ vuz4900))",fontsize=16,color="magenta"];1141 -> 2060[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1141 -> 2061[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1142[label="gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="triangle"];1142 -> 1174[label="",style="solid", color="black", weight=3]; 172.97/119.06 1143[label="primQuotInt (Pos vuz180) (Pos (Succ vuz5000))",fontsize=16,color="black",shape="box"];1143 -> 1175[label="",style="solid", color="black", weight=3]; 172.97/119.06 1144[label="primQuotInt (Pos vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1144 -> 1176[label="",style="solid", color="black", weight=3]; 172.97/119.06 1145[label="primQuotInt (Pos vuz180) (Neg (Succ vuz5000))",fontsize=16,color="black",shape="box"];1145 -> 1177[label="",style="solid", color="black", weight=3]; 172.97/119.06 1146[label="primQuotInt (Pos vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1146 -> 1178[label="",style="solid", color="black", weight=3]; 172.97/119.06 1147 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1147[label="gcd0Gcd'0 vuz50 (Neg (Succ vuz4900))",fontsize=16,color="magenta"];1147 -> 2062[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1147 -> 2063[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2056[label="vuz50",fontsize=16,color="green",shape="box"];2057[label="Neg Zero",fontsize=16,color="green",shape="box"];2055[label="gcd0Gcd'0 vuz90 vuz116",fontsize=16,color="black",shape="triangle"];2055 -> 2075[label="",style="solid", color="black", weight=3]; 172.97/119.06 1149 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1149[label="gcd0Gcd'0 vuz54 (Pos (Succ vuz5300))",fontsize=16,color="magenta"];1149 -> 2064[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1149 -> 2065[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1150 -> 1142[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1150[label="gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero)",fontsize=16,color="magenta"];1150 -> 1183[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1151[label="primQuotInt (Neg vuz180) (Pos (Succ vuz5400))",fontsize=16,color="black",shape="box"];1151 -> 1184[label="",style="solid", color="black", weight=3]; 172.97/119.06 1152[label="primQuotInt (Neg vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1152 -> 1185[label="",style="solid", color="black", weight=3]; 172.97/119.06 1153[label="primQuotInt (Neg vuz180) (Neg (Succ vuz5400))",fontsize=16,color="black",shape="box"];1153 -> 1186[label="",style="solid", color="black", weight=3]; 172.97/119.06 1154[label="primQuotInt (Neg vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1154 -> 1187[label="",style="solid", color="black", weight=3]; 172.97/119.06 1155 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1155[label="gcd0Gcd'0 vuz54 (Neg (Succ vuz5300))",fontsize=16,color="magenta"];1155 -> 2066[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1155 -> 2067[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2058[label="vuz54",fontsize=16,color="green",shape="box"];2059[label="Neg Zero",fontsize=16,color="green",shape="box"];1157[label="Integer vuz30 * Integer (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1157 -> 1190[label="",style="solid", color="black", weight=3]; 172.97/119.06 1158[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];1158 -> 1191[label="",style="solid", color="black", weight=3]; 172.97/119.06 1159 -> 1158[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1159[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1160 -> 1158[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1160[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1161[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1161 -> 1192[label="",style="solid", color="black", weight=3]; 172.97/119.06 1162[label="Integer vuz59 `quot` gcd1 (absReal (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal (Integer vuz37))",fontsize=16,color="black",shape="box"];1162 -> 1193[label="",style="solid", color="black", weight=3]; 172.97/119.06 2010 -> 2014[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2010[label="signumReal2 (Integer vuz34) (Integer vuz34 == fromInt (Pos Zero))",fontsize=16,color="magenta"];2010 -> 2015[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2012 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2012[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2012 -> 2016[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2012 -> 2017[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2013 -> 331[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2013[label="Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)",fontsize=16,color="magenta"];2013 -> 2018[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2011[label="Integer vuz32 `quot` gcd2 vuz108 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5725[label="vuz108/False",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5725[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5725 -> 2019[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5726[label="vuz108/True",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5726[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5726 -> 2020[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2644 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2644[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2645 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2645[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2646 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2646[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2647 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2647[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2424[label="Integer (Neg (Succ Zero))",fontsize=16,color="green",shape="box"];2648[label="fromInt (Neg (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2648 -> 2681[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2648 -> 2682[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2649[label="Double (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650[label="Float (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2060[label="vuz50",fontsize=16,color="green",shape="box"];2061[label="Pos (Succ vuz4900)",fontsize=16,color="green",shape="box"];1174[label="gcd0Gcd'2 (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="box"];1174 -> 1209[label="",style="solid", color="black", weight=3]; 172.97/119.06 1175[label="Pos (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1175 -> 1210[label="",style="dashed", color="green", weight=3]; 172.97/119.06 1176[label="error []",fontsize=16,color="black",shape="triangle"];1176 -> 1211[label="",style="solid", color="black", weight=3]; 172.97/119.06 1177[label="Neg (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1177 -> 1212[label="",style="dashed", color="green", weight=3]; 172.97/119.06 1178 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1178[label="error []",fontsize=16,color="magenta"];2062[label="vuz50",fontsize=16,color="green",shape="box"];2063[label="Neg (Succ vuz4900)",fontsize=16,color="green",shape="box"];2075[label="gcd0Gcd' vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2075 -> 2078[label="",style="solid", color="black", weight=3]; 172.97/119.06 2064[label="vuz54",fontsize=16,color="green",shape="box"];2065[label="Pos (Succ vuz5300)",fontsize=16,color="green",shape="box"];1183[label="vuz54",fontsize=16,color="green",shape="box"];1184[label="Neg (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1184 -> 1215[label="",style="dashed", color="green", weight=3]; 172.97/119.06 1185 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1185[label="error []",fontsize=16,color="magenta"];1186[label="Pos (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1186 -> 1216[label="",style="dashed", color="green", weight=3]; 172.97/119.06 1187 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1187[label="error []",fontsize=16,color="magenta"];2066[label="vuz54",fontsize=16,color="green",shape="box"];2067[label="Neg (Succ vuz5300)",fontsize=16,color="green",shape="box"];1190 -> 698[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1190[label="Integer (primMulInt vuz30 (Pos (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Pos (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1190 -> 1217[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1190 -> 1218[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1191[label="Integer vuz30 * Integer (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1191 -> 1219[label="",style="solid", color="black", weight=3]; 172.97/119.06 1192[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1192 -> 1220[label="",style="solid", color="black", weight=3]; 172.97/119.06 1193[label="Integer vuz59 `quot` gcd1 (absReal2 (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal2 (Integer vuz37))",fontsize=16,color="black",shape="box"];1193 -> 1221[label="",style="solid", color="black", weight=3]; 172.97/119.06 2015 -> 331[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2015[label="Integer vuz34 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2015 -> 2021[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2014[label="signumReal2 (Integer vuz34) vuz111",fontsize=16,color="burlywood",shape="triangle"];5727[label="vuz111/False",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5727[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5727 -> 2022[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5728[label="vuz111/True",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5728[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5728 -> 2023[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2016[label="vuz1040",fontsize=16,color="green",shape="box"];2017[label="vuz71",fontsize=16,color="green",shape="box"];2018 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2018[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2018 -> 2026[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2018 -> 2027[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2019[label="Integer vuz32 `quot` gcd2 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2019 -> 2028[label="",style="solid", color="black", weight=3]; 172.97/119.06 2020[label="Integer vuz32 `quot` gcd2 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2020 -> 2029[label="",style="solid", color="black", weight=3]; 172.97/119.06 2681[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5729[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5729[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5729 -> 2713[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5730[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5730[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5730 -> 2714[label="",style="solid", color="blue", weight=3]; 172.97/119.06 2682[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5731[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5731[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5731 -> 2715[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5732[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5732[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5732 -> 2716[label="",style="solid", color="blue", weight=3]; 172.97/119.06 1209 -> 2097[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1209[label="gcd0Gcd'1 (vuz50 `rem` Pos Zero == fromInt (Pos Zero)) (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="magenta"];1209 -> 2098[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1209 -> 2099[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1209 -> 2100[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1210[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="burlywood",shape="triangle"];5733[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5733[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5733 -> 1240[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5734[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5734[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5734 -> 1241[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1211[label="error []",fontsize=16,color="red",shape="box"];1212 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1212[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="magenta"];1212 -> 1242[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2078[label="gcd0Gcd'2 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2078 -> 2094[label="",style="solid", color="black", weight=3]; 172.97/119.06 1215 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1215[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1215 -> 1246[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1215 -> 1247[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1216 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1216[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1216 -> 1248[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1216 -> 1249[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1217 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1217[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1217 -> 1250[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1217 -> 1251[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1218 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1218[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1218 -> 1252[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1218 -> 1253[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1219 -> 698[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1219[label="Integer (primMulInt vuz30 (Neg (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Neg (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1219 -> 1254[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1219 -> 1255[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1220[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1220 -> 1256[label="",style="solid", color="black", weight=3]; 172.97/119.06 1221[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1221 -> 1257[label="",style="solid", color="black", weight=3]; 172.97/119.06 2021[label="vuz34",fontsize=16,color="green",shape="box"];2022[label="signumReal2 (Integer vuz34) False",fontsize=16,color="black",shape="box"];2022 -> 2030[label="",style="solid", color="black", weight=3]; 172.97/119.06 2023[label="signumReal2 (Integer vuz34) True",fontsize=16,color="black",shape="box"];2023 -> 2031[label="",style="solid", color="black", weight=3]; 172.97/119.06 2026[label="vuz1040",fontsize=16,color="green",shape="box"];2027[label="vuz71",fontsize=16,color="green",shape="box"];2028[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];2028 -> 2041[label="",style="solid", color="black", weight=3]; 172.97/119.06 2029 -> 2042[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2029[label="Integer vuz32 `quot` gcd1 (Integer vuz32 == fromInt (Pos Zero)) (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2029 -> 2043[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2713 -> 711[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2713[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2714 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2714[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2715 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2715[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2716 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2716[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2098 -> 1690[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2098[label="vuz50 `rem` Pos Zero == fromInt (Pos Zero)",fontsize=16,color="magenta"];2098 -> 2102[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2098 -> 2103[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2099[label="vuz50",fontsize=16,color="green",shape="box"];2100[label="Pos Zero",fontsize=16,color="green",shape="box"];2097[label="gcd0Gcd'1 vuz122 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="burlywood",shape="triangle"];5735[label="vuz122/False",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5735[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5735 -> 2104[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5736[label="vuz122/True",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5736[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5736 -> 2105[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1240[label="primDivNatS (Succ vuz1800) (Succ vuz5000)",fontsize=16,color="black",shape="box"];1240 -> 1272[label="",style="solid", color="black", weight=3]; 172.97/119.06 1241[label="primDivNatS Zero (Succ vuz5000)",fontsize=16,color="black",shape="box"];1241 -> 1273[label="",style="solid", color="black", weight=3]; 172.97/119.06 1242[label="vuz5000",fontsize=16,color="green",shape="box"];2094 -> 2097[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2094[label="gcd0Gcd'1 (vuz90 `rem` vuz116 == fromInt (Pos Zero)) vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2094 -> 2101[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1246[label="vuz5400",fontsize=16,color="green",shape="box"];1247[label="vuz180",fontsize=16,color="green",shape="box"];1248[label="vuz5400",fontsize=16,color="green",shape="box"];1249[label="vuz180",fontsize=16,color="green",shape="box"];1250[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1251[label="vuz30",fontsize=16,color="green",shape="box"];1252[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1253[label="vuz30",fontsize=16,color="green",shape="box"];1254 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1254[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1254 -> 1277[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1254 -> 1278[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1255 -> 25[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1255[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1255 -> 1279[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1255 -> 1280[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1256[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1256 -> 1281[label="",style="solid", color="black", weight=3]; 172.97/119.06 1257[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1257 -> 1282[label="",style="solid", color="black", weight=3]; 172.97/119.06 2030[label="signumReal1 (Integer vuz34) (Integer vuz34 > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];2030 -> 2044[label="",style="solid", color="black", weight=3]; 172.97/119.06 2031[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];2031 -> 2045[label="",style="solid", color="black", weight=3]; 172.97/119.06 2041[label="Integer vuz32 `quot` gcd0Gcd' (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2041 -> 2046[label="",style="solid", color="black", weight=3]; 172.97/119.06 2043 -> 331[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2043[label="Integer vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2043 -> 2047[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2042[label="Integer vuz32 `quot` gcd1 vuz115 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5737[label="vuz115/False",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5737[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5737 -> 2048[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5738[label="vuz115/True",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5738[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5738 -> 2049[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2102 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2102[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2103[label="vuz50 `rem` Pos Zero",fontsize=16,color="black",shape="box"];2103 -> 2119[label="",style="solid", color="black", weight=3]; 172.97/119.06 2104[label="gcd0Gcd'1 False vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2104 -> 2120[label="",style="solid", color="black", weight=3]; 172.97/119.06 2105[label="gcd0Gcd'1 True vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2105 -> 2121[label="",style="solid", color="black", weight=3]; 172.97/119.06 1272[label="primDivNatS0 vuz1800 vuz5000 (primGEqNatS vuz1800 vuz5000)",fontsize=16,color="burlywood",shape="box"];5739[label="vuz1800/Succ vuz18000",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5739[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5739 -> 1298[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5740[label="vuz1800/Zero",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5740[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5740 -> 1299[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1273[label="Zero",fontsize=16,color="green",shape="box"];2101 -> 1690[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2101[label="vuz90 `rem` vuz116 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2101 -> 2106[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2101 -> 2107[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1277[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1278[label="vuz30",fontsize=16,color="green",shape="box"];1279[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1280[label="vuz30",fontsize=16,color="green",shape="box"];1281[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1281 -> 1302[label="",style="solid", color="black", weight=3]; 172.97/119.06 1282 -> 1303[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1282[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1282 -> 1304[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2044 -> 2076[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2044[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];2044 -> 2077[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2045[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];2046[label="Integer vuz32 `quot` gcd0Gcd'2 (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2046 -> 2079[label="",style="solid", color="black", weight=3]; 172.97/119.06 2047[label="vuz32",fontsize=16,color="green",shape="box"];2048[label="Integer vuz32 `quot` gcd1 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2048 -> 2080[label="",style="solid", color="black", weight=3]; 172.97/119.06 2049[label="Integer vuz32 `quot` gcd1 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2049 -> 2081[label="",style="solid", color="black", weight=3]; 172.97/119.06 2119[label="primRemInt vuz50 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5741[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5741[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5741 -> 2143[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5742[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5742[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5742 -> 2144[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2120 -> 2055[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2120[label="gcd0Gcd'0 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2120 -> 2145[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2120 -> 2146[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2121[label="vuz116",fontsize=16,color="green",shape="box"];1298[label="primDivNatS0 (Succ vuz18000) vuz5000 (primGEqNatS (Succ vuz18000) vuz5000)",fontsize=16,color="burlywood",shape="box"];5743[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5743[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5743 -> 1321[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5744[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5744[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5744 -> 1322[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1299[label="primDivNatS0 Zero vuz5000 (primGEqNatS Zero vuz5000)",fontsize=16,color="burlywood",shape="box"];5745[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5745[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5745 -> 1323[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5746[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5746[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5746 -> 1324[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2106 -> 338[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2106[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2107[label="vuz90 `rem` vuz116",fontsize=16,color="black",shape="triangle"];2107 -> 2122[label="",style="solid", color="black", weight=3]; 172.97/119.06 1302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1302 -> 1328[label="",style="solid", color="black", weight=3]; 172.97/119.06 1304 -> 151[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1304[label="absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];1304 -> 1329[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1304 -> 1330[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1303[label="Integer vuz59 `quot` gcd1 vuz82 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5747[label="vuz82/False",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5747[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5747 -> 1331[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5748[label="vuz82/True",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5748[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5748 -> 1332[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2077 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2077[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2076[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) vuz117 == GT)",fontsize=16,color="burlywood",shape="triangle"];5749[label="vuz117/Integer vuz1170",fontsize=10,color="white",style="solid",shape="box"];2076 -> 5749[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5749 -> 2082[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2079 -> 2095[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2079[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == fromInt (Pos Zero)) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="magenta"];2079 -> 2096[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2080 -> 2028[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2080[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2081 -> 1360[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2081[label="Integer vuz32 `quot` error []",fontsize=16,color="magenta"];2081 -> 2108[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2143[label="primRemInt (Pos vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2143 -> 2173[label="",style="solid", color="black", weight=3]; 172.97/119.06 2144[label="primRemInt (Neg vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2144 -> 2174[label="",style="solid", color="black", weight=3]; 172.97/119.06 2145[label="vuz116",fontsize=16,color="green",shape="box"];2146 -> 2107[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2146[label="vuz90 `rem` vuz116",fontsize=16,color="magenta"];1321[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS (Succ vuz18000) (Succ vuz50000))",fontsize=16,color="black",shape="box"];1321 -> 1350[label="",style="solid", color="black", weight=3]; 172.97/119.06 1322[label="primDivNatS0 (Succ vuz18000) Zero (primGEqNatS (Succ vuz18000) Zero)",fontsize=16,color="black",shape="box"];1322 -> 1351[label="",style="solid", color="black", weight=3]; 172.97/119.06 1323[label="primDivNatS0 Zero (Succ vuz50000) (primGEqNatS Zero (Succ vuz50000))",fontsize=16,color="black",shape="box"];1323 -> 1352[label="",style="solid", color="black", weight=3]; 172.97/119.06 1324[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1324 -> 1353[label="",style="solid", color="black", weight=3]; 172.97/119.06 2122[label="primRemInt vuz90 vuz116",fontsize=16,color="burlywood",shape="triangle"];5750[label="vuz90/Pos vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5750[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5750 -> 2147[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5751[label="vuz90/Neg vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5751[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5751 -> 2148[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1328 -> 1358[label="",style="solid", color="black", weight=3]; 172.97/119.06 1329[label="vuz37",fontsize=16,color="green",shape="box"];1330[label="vuz37",fontsize=16,color="green",shape="box"];1331[label="Integer vuz59 `quot` gcd1 False (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1331 -> 1359[label="",style="solid", color="black", weight=3]; 172.97/119.06 1332[label="Integer vuz59 `quot` gcd1 True (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1332 -> 1360[label="",style="solid", color="black", weight=3]; 172.97/119.06 2082[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (Integer vuz1170) == GT)",fontsize=16,color="black",shape="box"];2082 -> 2109[label="",style="solid", color="black", weight=3]; 172.97/119.06 2096 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2096[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2095[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == vuz121) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="triangle"];2095 -> 2110[label="",style="solid", color="black", weight=3]; 172.97/119.06 2108[label="vuz32",fontsize=16,color="green",shape="box"];1360[label="Integer vuz59 `quot` error []",fontsize=16,color="black",shape="triangle"];1360 -> 1440[label="",style="solid", color="black", weight=3]; 172.97/119.06 2173 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2173[label="error []",fontsize=16,color="magenta"];2174 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2174[label="error []",fontsize=16,color="magenta"];1350 -> 3385[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1350[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS vuz18000 vuz50000)",fontsize=16,color="magenta"];1350 -> 3386[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1350 -> 3387[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1350 -> 3388[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1350 -> 3389[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1351[label="primDivNatS0 (Succ vuz18000) Zero True",fontsize=16,color="black",shape="box"];1351 -> 1409[label="",style="solid", color="black", weight=3]; 172.97/119.06 1352[label="primDivNatS0 Zero (Succ vuz50000) False",fontsize=16,color="black",shape="box"];1352 -> 1410[label="",style="solid", color="black", weight=3]; 172.97/119.06 1353[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];1353 -> 1411[label="",style="solid", color="black", weight=3]; 172.97/119.06 2147[label="primRemInt (Pos vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5752[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5752[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5752 -> 2175[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5753[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5753[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5753 -> 2176[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2148[label="primRemInt (Neg vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5754[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5754[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5754 -> 2177[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5755[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5755[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5755 -> 2178[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1358[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1358 -> 1438[label="",style="solid", color="black", weight=3]; 172.97/119.06 1359[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1359 -> 1439[label="",style="solid", color="black", weight=3]; 172.97/119.06 2109[label="signumReal1 (Integer vuz34) (primCmpInt vuz34 vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5756[label="vuz34/Pos vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5756[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5756 -> 2123[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5757[label="vuz34/Neg vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5757[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5757 -> 2124[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2110[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal (Integer vuz32))",fontsize=16,color="black",shape="box"];2110 -> 2125[label="",style="solid", color="black", weight=3]; 172.97/119.06 1440[label="error []",fontsize=16,color="red",shape="box"];3386[label="vuz50000",fontsize=16,color="green",shape="box"];3387[label="vuz18000",fontsize=16,color="green",shape="box"];3388[label="vuz18000",fontsize=16,color="green",shape="box"];3389[label="vuz50000",fontsize=16,color="green",shape="box"];3385[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz177 vuz178)",fontsize=16,color="burlywood",shape="triangle"];5758[label="vuz177/Succ vuz1770",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5758[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5758 -> 3426[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5759[label="vuz177/Zero",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5759[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5759 -> 3427[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1409 -> 1468[label="",style="dashed", color="green", weight=3]; 172.97/119.06 1410[label="Zero",fontsize=16,color="green",shape="box"];1411[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1411 -> 1469[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2175[label="primRemInt (Pos vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5760[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5760[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5760 -> 2190[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5761[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5761[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5761 -> 2191[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2176[label="primRemInt (Pos vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5762[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5762[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5762 -> 2192[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5763[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5763[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5763 -> 2193[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2177[label="primRemInt (Neg vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5764[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5764[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5764 -> 2194[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5765[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5765[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5765 -> 2195[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2178[label="primRemInt (Neg vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5766[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5766[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5766 -> 2196[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5767[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5767[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5767 -> 2197[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1438[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1438 -> 1499[label="",style="solid", color="black", weight=3]; 172.97/119.06 1439[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1439 -> 1500[label="",style="solid", color="black", weight=3]; 172.97/119.06 2123[label="signumReal1 (Integer (Pos vuz340)) (primCmpInt (Pos vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5768[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5768[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5768 -> 2149[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5769[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5769[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5769 -> 2150[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2124[label="signumReal1 (Integer (Neg vuz340)) (primCmpInt (Neg vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5770[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5770[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5770 -> 2151[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5771[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5771[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5771 -> 2152[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2125[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal2 (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal2 (Integer vuz32))",fontsize=16,color="black",shape="box"];2125 -> 2153[label="",style="solid", color="black", weight=3]; 172.97/119.06 3426[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) vuz178)",fontsize=16,color="burlywood",shape="box"];5772[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5772[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5772 -> 3455[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5773[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5773[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5773 -> 3456[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3427[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero vuz178)",fontsize=16,color="burlywood",shape="box"];5774[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5774[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5774 -> 3457[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5775[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5775[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5775 -> 3458[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 1468 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1468[label="primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1468 -> 1555[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1468 -> 1556[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1469 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1469[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1469 -> 1557[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1469 -> 1558[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2190[label="primRemInt (Pos vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2190 -> 2244[label="",style="solid", color="black", weight=3]; 172.97/119.06 2191[label="primRemInt (Pos vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2191 -> 2245[label="",style="solid", color="black", weight=3]; 172.97/119.06 2192[label="primRemInt (Pos vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2192 -> 2246[label="",style="solid", color="black", weight=3]; 172.97/119.06 2193[label="primRemInt (Pos vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2193 -> 2247[label="",style="solid", color="black", weight=3]; 172.97/119.06 2194[label="primRemInt (Neg vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2194 -> 2248[label="",style="solid", color="black", weight=3]; 172.97/119.06 2195[label="primRemInt (Neg vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2195 -> 2249[label="",style="solid", color="black", weight=3]; 172.97/119.06 2196[label="primRemInt (Neg vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2196 -> 2250[label="",style="solid", color="black", weight=3]; 172.97/119.06 2197[label="primRemInt (Neg vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2197 -> 2251[label="",style="solid", color="black", weight=3]; 172.97/119.06 1499[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1499 -> 1563[label="",style="solid", color="black", weight=3]; 172.97/119.06 1500[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1500 -> 1564[label="",style="solid", color="black", weight=3]; 172.97/119.06 2149[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5776[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5776[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5776 -> 2179[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5777[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5777[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5777 -> 2180[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2150[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5778[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5778[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5778 -> 2181[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5779[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5779[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5779 -> 2182[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2151[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5780[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5780[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5780 -> 2183[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5781[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5781[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5781 -> 2184[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2152[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5782[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5782[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5782 -> 2185[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5783[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5783[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5783 -> 2186[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2153 -> 2187[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2153[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];2153 -> 2188[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2153 -> 2189[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3455[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) (Succ vuz1780))",fontsize=16,color="black",shape="box"];3455 -> 3507[label="",style="solid", color="black", weight=3]; 172.97/119.06 3456[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) Zero)",fontsize=16,color="black",shape="box"];3456 -> 3508[label="",style="solid", color="black", weight=3]; 172.97/119.06 3457[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero (Succ vuz1780))",fontsize=16,color="black",shape="box"];3457 -> 3509[label="",style="solid", color="black", weight=3]; 172.97/119.06 3458[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3458 -> 3510[label="",style="solid", color="black", weight=3]; 172.97/119.06 1555[label="Zero",fontsize=16,color="green",shape="box"];1556[label="primMinusNatS (Succ vuz18000) Zero",fontsize=16,color="black",shape="triangle"];1556 -> 1710[label="",style="solid", color="black", weight=3]; 172.97/119.06 1557[label="Zero",fontsize=16,color="green",shape="box"];1558[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];1558 -> 1711[label="",style="solid", color="black", weight=3]; 172.97/119.06 2244[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2244 -> 2304[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2245 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2245[label="error []",fontsize=16,color="magenta"];2246[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2246 -> 2305[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2247 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2247[label="error []",fontsize=16,color="magenta"];2248[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2248 -> 2306[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2249 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2249[label="error []",fontsize=16,color="magenta"];2250[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2250 -> 2307[label="",style="dashed", color="green", weight=3]; 172.97/119.06 2251 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2251[label="error []",fontsize=16,color="magenta"];1563[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1563 -> 1759[label="",style="solid", color="black", weight=3]; 172.97/119.06 1564[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1564 -> 1760[label="",style="solid", color="black", weight=3]; 172.97/119.06 2179[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2179 -> 2198[label="",style="solid", color="black", weight=3]; 172.97/119.06 2180[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2180 -> 2199[label="",style="solid", color="black", weight=3]; 172.97/119.06 2181[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5784[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5784[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5784 -> 2200[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5785[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5785[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5785 -> 2201[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2182[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5786[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5786[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5786 -> 2202[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5787[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5787[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5787 -> 2203[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2183[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2183 -> 2204[label="",style="solid", color="black", weight=3]; 172.97/119.06 2184[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2184 -> 2205[label="",style="solid", color="black", weight=3]; 172.97/119.06 2185[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5788[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5788[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5788 -> 2206[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5789[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5789[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5789 -> 2207[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2186[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5790[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5790[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5790 -> 2208[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5791[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5791[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5791 -> 2209[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2188 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2188[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2189 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2189[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2187[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= vuz132) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= vuz131))",fontsize=16,color="black",shape="triangle"];2187 -> 2210[label="",style="solid", color="black", weight=3]; 172.97/119.06 3507 -> 3385[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3507[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz1770 vuz1780)",fontsize=16,color="magenta"];3507 -> 3523[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3507 -> 3524[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3508[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="black",shape="triangle"];3508 -> 3525[label="",style="solid", color="black", weight=3]; 172.97/119.06 3509[label="primDivNatS0 (Succ vuz175) (Succ vuz176) False",fontsize=16,color="black",shape="box"];3509 -> 3526[label="",style="solid", color="black", weight=3]; 172.97/119.06 3510 -> 3508[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3510[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="magenta"];1710[label="Succ vuz18000",fontsize=16,color="green",shape="box"];1711[label="Zero",fontsize=16,color="green",shape="box"];2304[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="burlywood",shape="triangle"];5792[label="vuz900/Succ vuz9000",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5792[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5792 -> 2341[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5793[label="vuz900/Zero",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5793[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5793 -> 2342[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2305 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2305[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2305 -> 2343[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2306 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2306[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2306 -> 2344[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2307 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2307[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2307 -> 2345[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2307 -> 2346[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1759[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1759 -> 1823[label="",style="solid", color="black", weight=3]; 172.97/119.06 1760[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1760 -> 1824[label="",style="solid", color="black", weight=3]; 172.97/119.06 2198 -> 3113[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2198[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpNat (Succ vuz3400) vuz11700 == GT)",fontsize=16,color="magenta"];2198 -> 3114[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2198 -> 3115[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2198 -> 3116[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2199[label="signumReal1 (Integer (Pos (Succ vuz3400))) (GT == GT)",fontsize=16,color="black",shape="triangle"];2199 -> 2254[label="",style="solid", color="black", weight=3]; 172.97/119.06 2200[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2200 -> 2255[label="",style="solid", color="black", weight=3]; 172.97/119.06 2201[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2201 -> 2256[label="",style="solid", color="black", weight=3]; 172.97/119.06 2202[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2202 -> 2257[label="",style="solid", color="black", weight=3]; 172.97/119.06 2203[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2203 -> 2258[label="",style="solid", color="black", weight=3]; 172.97/119.06 2204[label="signumReal1 (Integer (Neg (Succ vuz3400))) (LT == GT)",fontsize=16,color="black",shape="triangle"];2204 -> 2259[label="",style="solid", color="black", weight=3]; 172.97/119.06 2205 -> 3701[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2205[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpNat vuz11700 (Succ vuz3400) == GT)",fontsize=16,color="magenta"];2205 -> 3702[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2205 -> 3703[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2205 -> 3704[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2206[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2206 -> 2262[label="",style="solid", color="black", weight=3]; 172.97/119.06 2207[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2207 -> 2263[label="",style="solid", color="black", weight=3]; 172.97/119.06 2208[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2208 -> 2264[label="",style="solid", color="black", weight=3]; 172.97/119.06 2209[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2209 -> 2265[label="",style="solid", color="black", weight=3]; 172.97/119.06 2210[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT))",fontsize=16,color="black",shape="box"];2210 -> 2266[label="",style="solid", color="black", weight=3]; 172.97/119.06 3523[label="vuz1770",fontsize=16,color="green",shape="box"];3524[label="vuz1780",fontsize=16,color="green",shape="box"];3525[label="Succ (primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176)))",fontsize=16,color="green",shape="box"];3525 -> 3532[label="",style="dashed", color="green", weight=3]; 172.97/119.06 3526[label="Zero",fontsize=16,color="green",shape="box"];2341[label="primModNatS (Succ vuz9000) (Succ vuz11600)",fontsize=16,color="black",shape="box"];2341 -> 2380[label="",style="solid", color="black", weight=3]; 172.97/119.06 2342[label="primModNatS Zero (Succ vuz11600)",fontsize=16,color="black",shape="box"];2342 -> 2381[label="",style="solid", color="black", weight=3]; 172.97/119.06 2343[label="vuz11600",fontsize=16,color="green",shape="box"];2344[label="vuz900",fontsize=16,color="green",shape="box"];2345[label="vuz11600",fontsize=16,color="green",shape="box"];2346[label="vuz900",fontsize=16,color="green",shape="box"];1823[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1823 -> 1891[label="",style="solid", color="black", weight=3]; 172.97/119.06 1824[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1824 -> 1892[label="",style="solid", color="black", weight=3]; 172.97/119.06 3114[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3115[label="vuz3400",fontsize=16,color="green",shape="box"];3116[label="vuz11700",fontsize=16,color="green",shape="box"];3113[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz163 vuz164 == GT)",fontsize=16,color="burlywood",shape="triangle"];5794[label="vuz163/Succ vuz1630",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5794[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5794 -> 3135[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5795[label="vuz163/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5795[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5795 -> 3136[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2254[label="signumReal1 (Integer (Pos (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2254 -> 2310[label="",style="solid", color="black", weight=3]; 172.97/119.06 2255[label="signumReal1 (Integer (Pos Zero)) (primCmpNat Zero (Succ vuz117000) == GT)",fontsize=16,color="black",shape="box"];2255 -> 2311[label="",style="solid", color="black", weight=3]; 172.97/119.06 2256[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2256 -> 2312[label="",style="solid", color="black", weight=3]; 172.97/119.06 2257[label="signumReal1 (Integer (Pos Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2257 -> 2313[label="",style="solid", color="black", weight=3]; 172.97/119.06 2258 -> 2256[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2258[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="magenta"];2259[label="signumReal1 (Integer (Neg (Succ vuz3400))) False",fontsize=16,color="black",shape="triangle"];2259 -> 2314[label="",style="solid", color="black", weight=3]; 172.97/119.06 3702[label="vuz11700",fontsize=16,color="green",shape="box"];3703[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3704[label="vuz3400",fontsize=16,color="green",shape="box"];3701[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz199 vuz200 == GT)",fontsize=16,color="burlywood",shape="triangle"];5796[label="vuz199/Succ vuz1990",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5796[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5796 -> 3732[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5797[label="vuz199/Zero",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5797[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5797 -> 3733[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2262[label="signumReal1 (Integer (Neg Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2262 -> 2317[label="",style="solid", color="black", weight=3]; 172.97/119.06 2263[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2263 -> 2318[label="",style="solid", color="black", weight=3]; 172.97/119.06 2264[label="signumReal1 (Integer (Neg Zero)) (primCmpNat (Succ vuz117000) Zero == GT)",fontsize=16,color="black",shape="box"];2264 -> 2319[label="",style="solid", color="black", weight=3]; 172.97/119.06 2265 -> 2263[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2265[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="magenta"];2266 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2266[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)))",fontsize=16,color="magenta"];2266 -> 2885[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2886[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2887[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2888[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2889[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2890[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2891[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2892[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2266 -> 2893[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3532 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3532[label="primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176))",fontsize=16,color="magenta"];3532 -> 3535[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3532 -> 3536[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2380[label="primModNatS0 vuz9000 vuz11600 (primGEqNatS vuz9000 vuz11600)",fontsize=16,color="burlywood",shape="box"];5798[label="vuz9000/Succ vuz90000",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5798[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5798 -> 2417[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5799[label="vuz9000/Zero",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5799[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5799 -> 2418[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2381[label="Zero",fontsize=16,color="green",shape="box"];1891 -> 2090[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1891[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1891 -> 2091[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1891 -> 2092[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1891 -> 2093[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2111[label="",style="dashed", color="red", weight=0]; 172.97/119.06 1892[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];1892 -> 2112[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2113[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2114[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2115[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2116[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2117[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 1892 -> 2118[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3135[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5800[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5800[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5800 -> 3164[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5801[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5801[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5801 -> 3165[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3136[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5802[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5802[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5802 -> 3166[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5803[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5803[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5803 -> 3167[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2311[label="signumReal1 (Integer (Pos Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2311 -> 2350[label="",style="solid", color="black", weight=3]; 172.97/119.06 2312[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="triangle"];2312 -> 2351[label="",style="solid", color="black", weight=3]; 172.97/119.06 2313[label="signumReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2313 -> 2352[label="",style="solid", color="black", weight=3]; 172.97/119.06 2314[label="signumReal0 (Integer (Neg (Succ vuz3400))) otherwise",fontsize=16,color="black",shape="box"];2314 -> 2353[label="",style="solid", color="black", weight=3]; 172.97/119.06 3732[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5804[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5804[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5804 -> 3752[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5805[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5805[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5805 -> 3753[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3733[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5806[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5806[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5806 -> 3754[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5807[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5807[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5807 -> 3755[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2317[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="triangle"];2317 -> 2356[label="",style="solid", color="black", weight=3]; 172.97/119.06 2318 -> 2317[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2318[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="magenta"];2319[label="signumReal1 (Integer (Neg Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2319 -> 2357[label="",style="solid", color="black", weight=3]; 172.97/119.06 2885[label="vuz32",fontsize=16,color="green",shape="box"];2886[label="vuz121",fontsize=16,color="green",shape="box"];2887[label="vuz32",fontsize=16,color="green",shape="box"];2888[label="vuz32",fontsize=16,color="green",shape="box"];2889[label="vuz109",fontsize=16,color="green",shape="box"];2890[label="vuz32",fontsize=16,color="green",shape="box"];2891[label="vuz32",fontsize=16,color="green",shape="box"];2892[label="vuz132",fontsize=16,color="green",shape="box"];2893[label="vuz132",fontsize=16,color="green",shape="box"];2884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5808[label="vuz120/Integer vuz1200",fontsize=10,color="white",style="solid",shape="box"];2884 -> 5808[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5808 -> 2912[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3535[label="Succ vuz176",fontsize=16,color="green",shape="box"];3536 -> 2954[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3536[label="primMinusNatS (Succ vuz175) (Succ vuz176)",fontsize=16,color="magenta"];3536 -> 3539[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3536 -> 3540[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2417[label="primModNatS0 (Succ vuz90000) vuz11600 (primGEqNatS (Succ vuz90000) vuz11600)",fontsize=16,color="burlywood",shape="box"];5809[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5809[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5809 -> 2457[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5810[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5810[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5810 -> 2458[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2418[label="primModNatS0 Zero vuz11600 (primGEqNatS Zero vuz11600)",fontsize=16,color="burlywood",shape="box"];5811[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5811[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5811 -> 2459[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5812[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5812[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5812 -> 2460[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2091 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2091[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2092 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2092[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2093 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2093[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2090[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2090 -> 2141[label="",style="solid", color="black", weight=3]; 172.97/119.06 2112 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2112[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2113 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2113[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2114 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2114[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2115 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2115[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2116 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2116[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2117 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2117[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2118 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2118[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2111[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT)) >= vuz126) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz128 == LT)) >= vuz125))",fontsize=16,color="black",shape="triangle"];2111 -> 2142[label="",style="solid", color="black", weight=3]; 172.97/119.06 3164[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3164 -> 3223[label="",style="solid", color="black", weight=3]; 172.97/119.06 3165[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) Zero == GT)",fontsize=16,color="black",shape="box"];3165 -> 3224[label="",style="solid", color="black", weight=3]; 172.97/119.06 3166[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3166 -> 3225[label="",style="solid", color="black", weight=3]; 172.97/119.06 3167[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3167 -> 3226[label="",style="solid", color="black", weight=3]; 172.97/119.06 2350 -> 2312[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2350[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="magenta"];2351[label="signumReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];2351 -> 2386[label="",style="solid", color="black", weight=3]; 172.97/119.06 2352 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2352[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2353[label="signumReal0 (Integer (Neg (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2353 -> 2387[label="",style="solid", color="black", weight=3]; 172.97/119.06 3752[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3752 -> 3798[label="",style="solid", color="black", weight=3]; 172.97/119.06 3753[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) Zero == GT)",fontsize=16,color="black",shape="box"];3753 -> 3799[label="",style="solid", color="black", weight=3]; 172.97/119.06 3754[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3754 -> 3800[label="",style="solid", color="black", weight=3]; 172.97/119.06 3755[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3755 -> 3801[label="",style="solid", color="black", weight=3]; 172.97/119.06 2356[label="signumReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];2356 -> 2392[label="",style="solid", color="black", weight=3]; 172.97/119.06 2357[label="signumReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2357 -> 2393[label="",style="solid", color="black", weight=3]; 172.97/119.06 2912[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) (Integer vuz1200) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2912 -> 2955[label="",style="solid", color="black", weight=3]; 172.97/119.06 3539[label="Succ vuz175",fontsize=16,color="green",shape="box"];3540[label="Succ vuz176",fontsize=16,color="green",shape="box"];2954[label="primMinusNatS vuz154 vuz155",fontsize=16,color="burlywood",shape="triangle"];5813[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5813[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5813 -> 2996[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5814[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5814[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5814 -> 2997[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2457[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS (Succ vuz90000) (Succ vuz116000))",fontsize=16,color="black",shape="box"];2457 -> 2508[label="",style="solid", color="black", weight=3]; 172.97/119.06 2458[label="primModNatS0 (Succ vuz90000) Zero (primGEqNatS (Succ vuz90000) Zero)",fontsize=16,color="black",shape="box"];2458 -> 2509[label="",style="solid", color="black", weight=3]; 172.97/119.06 2459[label="primModNatS0 Zero (Succ vuz116000) (primGEqNatS Zero (Succ vuz116000))",fontsize=16,color="black",shape="box"];2459 -> 2510[label="",style="solid", color="black", weight=3]; 172.97/119.06 2460[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2460 -> 2511[label="",style="solid", color="black", weight=3]; 172.97/119.06 2141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5815[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5815[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5815 -> 2170[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5816[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5816[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5816 -> 2171[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT))",fontsize=16,color="black",shape="box"];2142 -> 2172[label="",style="solid", color="black", weight=3]; 172.97/119.06 3223 -> 3113[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3223[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz1630 vuz1640 == GT)",fontsize=16,color="magenta"];3223 -> 3291[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3223 -> 3292[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3224[label="signumReal1 (Integer (Pos (Succ vuz162))) (GT == GT)",fontsize=16,color="black",shape="box"];3224 -> 3293[label="",style="solid", color="black", weight=3]; 172.97/119.06 3225[label="signumReal1 (Integer (Pos (Succ vuz162))) (LT == GT)",fontsize=16,color="black",shape="box"];3225 -> 3294[label="",style="solid", color="black", weight=3]; 172.97/119.06 3226[label="signumReal1 (Integer (Pos (Succ vuz162))) (EQ == GT)",fontsize=16,color="black",shape="box"];3226 -> 3295[label="",style="solid", color="black", weight=3]; 172.97/119.06 2386[label="signumReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2386 -> 2423[label="",style="solid", color="black", weight=3]; 172.97/119.06 3798 -> 3701[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3798[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz1990 vuz2000 == GT)",fontsize=16,color="magenta"];3798 -> 3835[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3798 -> 3836[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3799[label="signumReal1 (Integer (Neg (Succ vuz198))) (GT == GT)",fontsize=16,color="black",shape="box"];3799 -> 3837[label="",style="solid", color="black", weight=3]; 172.97/119.06 3800[label="signumReal1 (Integer (Neg (Succ vuz198))) (LT == GT)",fontsize=16,color="black",shape="box"];3800 -> 3838[label="",style="solid", color="black", weight=3]; 172.97/119.06 3801[label="signumReal1 (Integer (Neg (Succ vuz198))) (EQ == GT)",fontsize=16,color="black",shape="box"];3801 -> 3839[label="",style="solid", color="black", weight=3]; 172.97/119.06 2392[label="signumReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2392 -> 2429[label="",style="solid", color="black", weight=3]; 172.97/119.06 2393 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2393[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2955[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt vuz160 vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt vuz160 vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5817[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5817[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5817 -> 2998[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5818[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5818[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5818 -> 2999[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2996[label="primMinusNatS (Succ vuz1540) vuz155",fontsize=16,color="burlywood",shape="box"];5819[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5819[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5819 -> 3030[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5820[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5820[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5820 -> 3031[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2997[label="primMinusNatS Zero vuz155",fontsize=16,color="burlywood",shape="box"];5821[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5821[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5821 -> 3032[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5822[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5822[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5822 -> 3033[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2508 -> 3575[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2508[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS vuz90000 vuz116000)",fontsize=16,color="magenta"];2508 -> 3576[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2508 -> 3577[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2508 -> 3578[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2508 -> 3579[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2509[label="primModNatS0 (Succ vuz90000) Zero True",fontsize=16,color="black",shape="box"];2509 -> 2570[label="",style="solid", color="black", weight=3]; 172.97/119.06 2510[label="primModNatS0 Zero (Succ vuz116000) False",fontsize=16,color="black",shape="box"];2510 -> 2571[label="",style="solid", color="black", weight=3]; 172.97/119.06 2511[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];2511 -> 2572[label="",style="solid", color="black", weight=3]; 172.97/119.06 2170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5823[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5823[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5823 -> 2328[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5824[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5824[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5824 -> 2329[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5825[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5825[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5825 -> 2330[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5826[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5826[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5826 -> 2331[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5827[label="vuz130/Integer vuz1300",fontsize=10,color="white",style="solid",shape="box"];2172 -> 5827[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5827 -> 2332[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3291[label="vuz1630",fontsize=16,color="green",shape="box"];3292[label="vuz1640",fontsize=16,color="green",shape="box"];3293[label="signumReal1 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3293 -> 3316[label="",style="solid", color="black", weight=3]; 172.97/119.06 3294[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="black",shape="triangle"];3294 -> 3317[label="",style="solid", color="black", weight=3]; 172.97/119.06 3295 -> 3294[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3295[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="magenta"];2423 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2423[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3835[label="vuz1990",fontsize=16,color="green",shape="box"];3836[label="vuz2000",fontsize=16,color="green",shape="box"];3837[label="signumReal1 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3837 -> 3869[label="",style="solid", color="black", weight=3]; 172.97/119.06 3838[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="black",shape="triangle"];3838 -> 3870[label="",style="solid", color="black", weight=3]; 172.97/119.06 3839 -> 3838[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3839[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="magenta"];2429 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2429[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5828[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5828[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5828 -> 3034[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5829[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5829[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5829 -> 3035[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2999[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5830[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5830[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5830 -> 3036[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5831[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5831[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5831 -> 3037[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3030[label="primMinusNatS (Succ vuz1540) (Succ vuz1550)",fontsize=16,color="black",shape="box"];3030 -> 3077[label="",style="solid", color="black", weight=3]; 172.97/119.06 3031[label="primMinusNatS (Succ vuz1540) Zero",fontsize=16,color="black",shape="box"];3031 -> 3078[label="",style="solid", color="black", weight=3]; 172.97/119.06 3032[label="primMinusNatS Zero (Succ vuz1550)",fontsize=16,color="black",shape="box"];3032 -> 3079[label="",style="solid", color="black", weight=3]; 172.97/119.06 3033[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];3033 -> 3080[label="",style="solid", color="black", weight=3]; 172.97/119.06 3576[label="vuz90000",fontsize=16,color="green",shape="box"];3577[label="vuz116000",fontsize=16,color="green",shape="box"];3578[label="vuz90000",fontsize=16,color="green",shape="box"];3579[label="vuz116000",fontsize=16,color="green",shape="box"];3575[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz193 vuz194)",fontsize=16,color="burlywood",shape="triangle"];5832[label="vuz193/Succ vuz1930",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5832[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5832 -> 3608[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5833[label="vuz193/Zero",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5833[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5833 -> 3609[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2570 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2570[label="primModNatS (primMinusNatS (Succ vuz90000) Zero) (Succ Zero)",fontsize=16,color="magenta"];2570 -> 2614[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2570 -> 2615[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2571[label="Succ Zero",fontsize=16,color="green",shape="box"];2572 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2572[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2572 -> 2616[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2572 -> 2617[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2328 -> 2366[label="",style="solid", color="black", weight=3]; 172.97/119.06 2329[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2329 -> 2367[label="",style="solid", color="black", weight=3]; 172.97/119.06 2330[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2330 -> 2368[label="",style="solid", color="black", weight=3]; 172.97/119.06 2331[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2331 -> 2369[label="",style="solid", color="black", weight=3]; 172.97/119.06 2332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2332 -> 2370[label="",style="solid", color="black", weight=3]; 172.97/119.06 3316[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5834[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5834[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5834 -> 3326[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5835[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5835[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5835 -> 3327[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5836[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5836[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5836 -> 3328[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5837[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5837[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5837 -> 3329[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5838[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5838[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5838 -> 3330[label="",style="solid", color="blue", weight=3]; 172.97/119.06 3317[label="signumReal0 (Integer (Pos (Succ vuz162))) otherwise",fontsize=16,color="black",shape="box"];3317 -> 3331[label="",style="solid", color="black", weight=3]; 172.97/119.06 3869[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5839[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5839[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5839 -> 3922[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5840[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5840[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5840 -> 3923[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5841[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5841[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5841 -> 3924[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5842[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5842[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5842 -> 3925[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5843[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5843[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5843 -> 3926[label="",style="solid", color="blue", weight=3]; 172.97/119.06 3870[label="signumReal0 (Integer (Neg (Succ vuz198))) otherwise",fontsize=16,color="black",shape="box"];3870 -> 3927[label="",style="solid", color="black", weight=3]; 172.97/119.06 3034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5844[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5844[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5844 -> 3081[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5845[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5845[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5845 -> 3082[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5846[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5846[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5846 -> 3083[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5847[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5847[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5847 -> 3084[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3036[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5848[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5848[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5848 -> 3085[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5849[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5849[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5849 -> 3086[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3037[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5850[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5850[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5850 -> 3087[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5851[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5851[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5851 -> 3088[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3077 -> 2954[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3077[label="primMinusNatS vuz1540 vuz1550",fontsize=16,color="magenta"];3077 -> 3137[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3077 -> 3138[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3078[label="Succ vuz1540",fontsize=16,color="green",shape="box"];3079[label="Zero",fontsize=16,color="green",shape="box"];3080[label="Zero",fontsize=16,color="green",shape="box"];3608[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) vuz194)",fontsize=16,color="burlywood",shape="box"];5852[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5852[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5852 -> 3627[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5853[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5853[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5853 -> 3628[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3609[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero vuz194)",fontsize=16,color="burlywood",shape="box"];5854[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5854[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5854 -> 3629[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5855[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5855[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5855 -> 3630[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2614[label="Zero",fontsize=16,color="green",shape="box"];2615 -> 1556[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2615[label="primMinusNatS (Succ vuz90000) Zero",fontsize=16,color="magenta"];2615 -> 2655[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2616[label="Zero",fontsize=16,color="green",shape="box"];2617 -> 1558[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2617[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];2366[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2404[label="",style="solid", color="black", weight=3]; 172.97/119.06 2367[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2367 -> 2405[label="",style="solid", color="black", weight=3]; 172.97/119.06 2368[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2368 -> 2406[label="",style="solid", color="black", weight=3]; 172.97/119.06 2369[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2369 -> 2407[label="",style="solid", color="black", weight=3]; 172.97/119.06 2370[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5856[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5856[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5856 -> 2408[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5857[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5857[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5857 -> 2409[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3326 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3326[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3327 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3327[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3328 -> 2453[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3328[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3329 -> 2454[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3329[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3330 -> 2455[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3330[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3331[label="signumReal0 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3331 -> 3369[label="",style="solid", color="black", weight=3]; 172.97/119.06 3922 -> 584[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3922[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3923 -> 2310[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3923[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3924 -> 2453[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3924[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3925 -> 2454[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3925[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3926 -> 2455[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3926[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3927[label="signumReal0 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3927 -> 3970[label="",style="solid", color="black", weight=3]; 172.97/119.06 3081[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3081 -> 3139[label="",style="solid", color="black", weight=3]; 172.97/119.06 3082[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3082 -> 3140[label="",style="solid", color="black", weight=3]; 172.97/119.06 3083[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5858[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5858[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5858 -> 3141[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5859[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5859[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5859 -> 3142[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3084[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5860[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5860[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5860 -> 3143[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5861[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5861[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5861 -> 3144[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3085[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3085 -> 3145[label="",style="solid", color="black", weight=3]; 172.97/119.06 3086[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3086 -> 3146[label="",style="solid", color="black", weight=3]; 172.97/119.06 3087[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5862[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5862[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5862 -> 3147[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5863[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5863[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5863 -> 3148[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3088[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5864[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5864[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5864 -> 3149[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5865[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5865[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5865 -> 3150[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3137[label="vuz1540",fontsize=16,color="green",shape="box"];3138[label="vuz1550",fontsize=16,color="green",shape="box"];3627[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) (Succ vuz1940))",fontsize=16,color="black",shape="box"];3627 -> 3634[label="",style="solid", color="black", weight=3]; 172.97/119.06 3628[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) Zero)",fontsize=16,color="black",shape="box"];3628 -> 3635[label="",style="solid", color="black", weight=3]; 172.97/119.06 3629[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero (Succ vuz1940))",fontsize=16,color="black",shape="box"];3629 -> 3636[label="",style="solid", color="black", weight=3]; 172.97/119.06 3630[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3630 -> 3637[label="",style="solid", color="black", weight=3]; 172.97/119.06 2655[label="vuz90000",fontsize=16,color="green",shape="box"];2404[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2404 -> 2441[label="",style="solid", color="black", weight=3]; 172.97/119.06 2405[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2405 -> 2442[label="",style="solid", color="black", weight=3]; 172.97/119.06 2406[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2406 -> 2443[label="",style="solid", color="black", weight=3]; 172.97/119.06 2407[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2407 -> 2444[label="",style="solid", color="black", weight=3]; 172.97/119.06 2408[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5866[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5866[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5866 -> 2445[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5867[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5867[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5867 -> 2446[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2409[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5868[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5868[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5868 -> 2447[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5869[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5869[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5869 -> 2448[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3369[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5870[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5870[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5870 -> 3376[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5871[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5871[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5871 -> 3377[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5872[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5872[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5872 -> 3378[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5873[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5873[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5873 -> 3379[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5874[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5874[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5874 -> 3380[label="",style="solid", color="blue", weight=3]; 172.97/119.06 3970[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5875[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5875[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5875 -> 4010[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5876[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5876[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5876 -> 4011[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5877[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5877[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5877 -> 4012[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5878[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5878[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5878 -> 4013[label="",style="solid", color="blue", weight=3]; 172.97/119.06 5879[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5879[label="",style="solid", color="blue", weight=9]; 172.97/119.06 5879 -> 4014[label="",style="solid", color="blue", weight=3]; 172.97/119.06 3139[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5880[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5880[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5880 -> 3169[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5881[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5881[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5881 -> 3170[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3140[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];3140 -> 3171[label="",style="solid", color="black", weight=3]; 172.97/119.06 3141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3141 -> 3172[label="",style="solid", color="black", weight=3]; 172.97/119.06 3142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3142 -> 3173[label="",style="solid", color="black", weight=3]; 172.97/119.06 3143[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3143 -> 3174[label="",style="solid", color="black", weight=3]; 172.97/119.06 3144[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3144 -> 3175[label="",style="solid", color="black", weight=3]; 172.97/119.06 3145[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];3145 -> 3176[label="",style="solid", color="black", weight=3]; 172.97/119.06 3146[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5882[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5882[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5882 -> 3177[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5883[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5883[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5883 -> 3178[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3147 -> 3179[label="",style="solid", color="black", weight=3]; 172.97/119.06 3148[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3148 -> 3180[label="",style="solid", color="black", weight=3]; 172.97/119.06 3149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3149 -> 3181[label="",style="solid", color="black", weight=3]; 172.97/119.06 3150[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3150 -> 3182[label="",style="solid", color="black", weight=3]; 172.97/119.06 3634 -> 3575[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3634[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz1930 vuz1940)",fontsize=16,color="magenta"];3634 -> 3675[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3634 -> 3676[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3635[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="black",shape="triangle"];3635 -> 3677[label="",style="solid", color="black", weight=3]; 172.97/119.06 3636[label="primModNatS0 (Succ vuz191) (Succ vuz192) False",fontsize=16,color="black",shape="box"];3636 -> 3678[label="",style="solid", color="black", weight=3]; 172.97/119.06 3637 -> 3635[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3637[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="magenta"];2441[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2441 -> 2486[label="",style="solid", color="black", weight=3]; 172.97/119.06 2442[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2442 -> 2487[label="",style="solid", color="black", weight=3]; 172.97/119.06 2443[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2443 -> 2488[label="",style="solid", color="black", weight=3]; 172.97/119.06 2444[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2444 -> 2489[label="",style="solid", color="black", weight=3]; 172.97/119.06 2445[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5884[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5884[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5884 -> 2490[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5885[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5885[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5885 -> 2491[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2446[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5886[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5886[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5886 -> 2492[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5887[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5887[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5887 -> 2493[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2447[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5888[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5888[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5888 -> 2494[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5889[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5889[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5889 -> 2495[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2448[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5890[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5890[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5890 -> 2496[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5891[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5891[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5891 -> 2497[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3376 -> 711[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3376[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3377 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3377[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3378 -> 2565[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3378[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3379 -> 2566[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3379[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3380 -> 2567[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3380[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4010 -> 711[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4010[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4011 -> 2387[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4011[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4012 -> 2565[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4012[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4013 -> 2566[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4013[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4014 -> 2567[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4014[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3169[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)))",fontsize=16,color="black",shape="box"];3169 -> 3228[label="",style="solid", color="black", weight=3]; 172.97/119.06 3170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) Zero == LT)))",fontsize=16,color="black",shape="box"];3170 -> 3229[label="",style="solid", color="black", weight=3]; 172.97/119.06 3171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="black",shape="triangle"];3171 -> 3230[label="",style="solid", color="black", weight=3]; 172.97/119.06 3172 -> 3146[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz120000) == LT)))",fontsize=16,color="magenta"];3172 -> 3231[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3172 -> 3232[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3173[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];3173 -> 3233[label="",style="solid", color="black", weight=3]; 172.97/119.06 3174 -> 3140[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3174[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3175 -> 3173[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3175[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3176[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not True) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not True))",fontsize=16,color="black",shape="box"];3176 -> 3234[label="",style="solid", color="black", weight=3]; 172.97/119.06 3177[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3177 -> 3235[label="",style="solid", color="black", weight=3]; 172.97/119.06 3178[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3178 -> 3236[label="",style="solid", color="black", weight=3]; 172.97/119.06 3179 -> 3145[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3179[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3180 -> 3173[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3180[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3181 -> 3139[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3181[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) Zero == LT)))",fontsize=16,color="magenta"];3181 -> 3237[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3181 -> 3238[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3182 -> 3173[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3182[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3675[label="vuz1930",fontsize=16,color="green",shape="box"];3676[label="vuz1940",fontsize=16,color="green",shape="box"];3677 -> 2304[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3677[label="primModNatS (primMinusNatS (Succ vuz191) (Succ vuz192)) (Succ (Succ vuz192))",fontsize=16,color="magenta"];3677 -> 3734[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3677 -> 3735[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3678[label="Succ (Succ vuz191)",fontsize=16,color="green",shape="box"];2486[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2486 -> 2543[label="",style="solid", color="black", weight=3]; 172.97/119.06 2487 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2487[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2487 -> 2894[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2487 -> 2895[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2487 -> 2896[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2487 -> 2897[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2488[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2488 -> 2545[label="",style="solid", color="black", weight=3]; 172.97/119.06 2489 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2489[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2489 -> 2898[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2489 -> 2899[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2489 -> 2900[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2489 -> 2901[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2490[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2490 -> 2547[label="",style="solid", color="black", weight=3]; 172.97/119.06 2491[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2491 -> 2548[label="",style="solid", color="black", weight=3]; 172.97/119.06 2492[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5892[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5892[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5892 -> 2549[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5893[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5893[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5893 -> 2550[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2493[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5894[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5894[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5894 -> 2551[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5895[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5895[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5895 -> 2552[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2494[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2494 -> 2553[label="",style="solid", color="black", weight=3]; 172.97/119.06 2495[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2495 -> 2554[label="",style="solid", color="black", weight=3]; 172.97/119.06 2496[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5896[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5896[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5896 -> 2555[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5897[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5897[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5897 -> 2556[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2497[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5898[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5898[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5898 -> 2557[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5899[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5899[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5899 -> 2558[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3228[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz16000 vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz16000 vuz120000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5900[label="vuz16000/Succ vuz160000",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5900[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5900 -> 3301[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5901[label="vuz16000/Zero",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5901[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5901 -> 3302[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3229 -> 3140[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3229[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3230[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) True)",fontsize=16,color="black",shape="box"];3230 -> 3303[label="",style="solid", color="black", weight=3]; 172.97/119.06 3231[label="Zero",fontsize=16,color="green",shape="box"];3232[label="vuz120000",fontsize=16,color="green",shape="box"];3233 -> 3171[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3233[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="magenta"];3234[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) False == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) False)",fontsize=16,color="black",shape="box"];3234 -> 3304[label="",style="solid", color="black", weight=3]; 172.97/119.06 3235 -> 3228[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3235[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz120000 vuz16000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz120000 vuz16000 == LT)))",fontsize=16,color="magenta"];3235 -> 3305[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3235 -> 3306[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3236 -> 3145[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3236[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3237[label="Zero",fontsize=16,color="green",shape="box"];3238[label="vuz120000",fontsize=16,color="green",shape="box"];3734[label="Succ vuz192",fontsize=16,color="green",shape="box"];3735 -> 2954[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3735[label="primMinusNatS (Succ vuz191) (Succ vuz192)",fontsize=16,color="magenta"];3735 -> 3756[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3735 -> 3757[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2543 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2543[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="magenta"];2543 -> 2902[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2543 -> 2903[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2543 -> 2904[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2543 -> 2905[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2894[label="Pos Zero",fontsize=16,color="green",shape="box"];2895[label="Pos Zero",fontsize=16,color="green",shape="box"];2896[label="Pos Zero",fontsize=16,color="green",shape="box"];2897[label="Pos Zero",fontsize=16,color="green",shape="box"];2545[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2545 -> 2729[label="",style="solid", color="black", weight=3]; 172.97/119.06 2898[label="Neg Zero",fontsize=16,color="green",shape="box"];2899[label="Neg Zero",fontsize=16,color="green",shape="box"];2900[label="Neg Zero",fontsize=16,color="green",shape="box"];2901[label="Neg Zero",fontsize=16,color="green",shape="box"];2547 -> 4224[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2547 -> 4225[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4226[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4227[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4228[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4229[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4230[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2547 -> 4231[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2548 -> 2404[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2548[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2548 -> 2733[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2548 -> 2734[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2548 -> 2735[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2549[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2549 -> 2736[label="",style="solid", color="black", weight=3]; 172.97/119.06 2550[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2550 -> 2737[label="",style="solid", color="black", weight=3]; 172.97/119.06 2551[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2551 -> 2738[label="",style="solid", color="black", weight=3]; 172.97/119.06 2552[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2552 -> 2739[label="",style="solid", color="black", weight=3]; 172.97/119.06 2553 -> 2368[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2553[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2553 -> 2740[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2553 -> 2741[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2553 -> 2742[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4336[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2554[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2554 -> 4337[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4338[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4339[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4340[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4341[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4342[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2554 -> 4343[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2555[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2555 -> 2745[label="",style="solid", color="black", weight=3]; 172.97/119.06 2556[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2556 -> 2746[label="",style="solid", color="black", weight=3]; 172.97/119.06 2557[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2557 -> 2747[label="",style="solid", color="black", weight=3]; 172.97/119.06 2558[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2558 -> 2748[label="",style="solid", color="black", weight=3]; 172.97/119.06 3301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5902[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5902[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5902 -> 3318[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5903[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5903[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5903 -> 3319[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5904[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5904[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5904 -> 3320[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5905[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5905[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5905 -> 3321[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3303 -> 3372[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3303[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 == vuz118) (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="magenta"];3303 -> 3373[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3304[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) otherwise == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) otherwise)",fontsize=16,color="black",shape="box"];3304 -> 3323[label="",style="solid", color="black", weight=3]; 172.97/119.06 3305[label="vuz120000",fontsize=16,color="green",shape="box"];3306[label="vuz16000",fontsize=16,color="green",shape="box"];3756[label="Succ vuz191",fontsize=16,color="green",shape="box"];3757[label="Succ vuz192",fontsize=16,color="green",shape="box"];2902[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2903[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2904[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2905[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2729[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2729 -> 2812[label="",style="solid", color="black", weight=3]; 172.97/119.06 4225[label="vuz3700",fontsize=16,color="green",shape="box"];4226[label="vuz59",fontsize=16,color="green",shape="box"];4227[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4228[label="vuz60",fontsize=16,color="green",shape="box"];4229[label="vuz13000",fontsize=16,color="green",shape="box"];4230[label="vuz126",fontsize=16,color="green",shape="box"];4231[label="vuz124",fontsize=16,color="green",shape="box"];4224[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5906[label="vuz208/Succ vuz2080",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5906[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5906 -> 4295[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5907[label="vuz208/Zero",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5907[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5907 -> 4296[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2733[label="vuz124",fontsize=16,color="green",shape="box"];2734[label="vuz126",fontsize=16,color="green",shape="box"];2735[label="vuz126",fontsize=16,color="green",shape="box"];2736[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2736 -> 2817[label="",style="solid", color="black", weight=3]; 172.97/119.06 2737 -> 2367[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2737[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2737 -> 2818[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2737 -> 2819[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2737 -> 2820[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2738[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2738 -> 2821[label="",style="solid", color="black", weight=3]; 172.97/119.06 2739 -> 2367[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2739[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2739 -> 2822[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2739 -> 2823[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2739 -> 2824[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2740[label="vuz124",fontsize=16,color="green",shape="box"];2741[label="vuz126",fontsize=16,color="green",shape="box"];2742[label="vuz126",fontsize=16,color="green",shape="box"];4337[label="vuz126",fontsize=16,color="green",shape="box"];4338[label="vuz124",fontsize=16,color="green",shape="box"];4339[label="vuz59",fontsize=16,color="green",shape="box"];4340[label="vuz60",fontsize=16,color="green",shape="box"];4341[label="vuz13000",fontsize=16,color="green",shape="box"];4342[label="vuz3700",fontsize=16,color="green",shape="box"];4343[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4336[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5908[label="vuz216/Succ vuz2160",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5908[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5908 -> 4407[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5909[label="vuz216/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5909[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5909 -> 4408[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2745[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2745 -> 2827[label="",style="solid", color="black", weight=3]; 172.97/119.06 2746 -> 2369[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2746[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2746 -> 2828[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2746 -> 2829[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2746 -> 2830[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2747[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2747 -> 2831[label="",style="solid", color="black", weight=3]; 172.97/119.06 2748 -> 2369[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2748[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2748 -> 2832[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2748 -> 2833[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2748 -> 2834[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3318[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3318 -> 3332[label="",style="solid", color="black", weight=3]; 172.97/119.06 3319[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) Zero == LT)))",fontsize=16,color="black",shape="box"];3319 -> 3333[label="",style="solid", color="black", weight=3]; 172.97/119.06 3320[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3320 -> 3334[label="",style="solid", color="black", weight=3]; 172.97/119.06 3321[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];3321 -> 3335[label="",style="solid", color="black", weight=3]; 172.97/119.06 3373[label="Integer vuz158 == vuz118",fontsize=16,color="burlywood",shape="triangle"];5910[label="vuz118/Integer vuz1180",fontsize=10,color="white",style="solid",shape="box"];3373 -> 5910[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5910 -> 3381[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3372[label="Integer vuz59 `quot` gcd0Gcd'1 vuz173 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="burlywood",shape="triangle"];5911[label="vuz173/False",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5911[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5911 -> 3382[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5912[label="vuz173/True",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5912[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5912 -> 3383[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3323[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) True)",fontsize=16,color="black",shape="box"];3323 -> 3337[label="",style="solid", color="black", weight=3]; 172.97/119.06 2812 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2812[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz119 == LT)))",fontsize=16,color="magenta"];2812 -> 2906[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2812 -> 2907[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2812 -> 2908[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2812 -> 2909[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4295[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5913[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5913[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5913 -> 4409[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5914[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5914[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5914 -> 4410[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 4296[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5915[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5915[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5915 -> 4411[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5916[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5916[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5916 -> 4412[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2817[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2817 -> 2926[label="",style="solid", color="black", weight=3]; 172.97/119.06 2818[label="vuz124",fontsize=16,color="green",shape="box"];2819[label="vuz126",fontsize=16,color="green",shape="box"];2820[label="vuz126",fontsize=16,color="green",shape="box"];2821 -> 2405[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2821[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2821 -> 2927[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2821 -> 2928[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2821 -> 2929[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2822[label="vuz124",fontsize=16,color="green",shape="box"];2823[label="vuz126",fontsize=16,color="green",shape="box"];2824[label="vuz126",fontsize=16,color="green",shape="box"];4407[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5917[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5917[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5917 -> 4435[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5918[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5918[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5918 -> 4436[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 4408[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5919[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5919[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5919 -> 4437[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5920[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5920[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5920 -> 4438[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 2827[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2827 -> 2935[label="",style="solid", color="black", weight=3]; 172.97/119.06 2828[label="vuz124",fontsize=16,color="green",shape="box"];2829[label="vuz126",fontsize=16,color="green",shape="box"];2830[label="vuz126",fontsize=16,color="green",shape="box"];2831[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2831 -> 2936[label="",style="solid", color="black", weight=3]; 172.97/119.06 2832[label="vuz124",fontsize=16,color="green",shape="box"];2833[label="vuz126",fontsize=16,color="green",shape="box"];2834[label="vuz126",fontsize=16,color="green",shape="box"];3332 -> 3228[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz160000 vuz1200000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz160000 vuz1200000 == LT)))",fontsize=16,color="magenta"];3332 -> 3370[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3332 -> 3371[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3333 -> 3140[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3333[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3334 -> 3145[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3334[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3335 -> 3173[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3335[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3381[label="Integer vuz158 == Integer vuz1180",fontsize=16,color="black",shape="box"];3381 -> 3429[label="",style="solid", color="black", weight=3]; 172.97/119.06 3382[label="Integer vuz59 `quot` gcd0Gcd'1 False (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3382 -> 3430[label="",style="solid", color="black", weight=3]; 172.97/119.06 3383[label="Integer vuz59 `quot` gcd0Gcd'1 True (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3383 -> 3431[label="",style="solid", color="black", weight=3]; 172.97/119.06 3337[label="Integer vuz59 `quot` gcd0Gcd'1 (`negate` Integer vuz158 == vuz118) (abs (Integer vuz60)) (`negate` Integer vuz158)",fontsize=16,color="black",shape="box"];3337 -> 3384[label="",style="solid", color="black", weight=3]; 172.97/119.06 2906 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2906[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2906 -> 2950[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2907 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2907[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2907 -> 2951[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2908 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2908[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2908 -> 2952[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2909 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2909[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2909 -> 2953[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4409[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4409 -> 4439[label="",style="solid", color="black", weight=3]; 172.97/119.06 4410[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4410 -> 4440[label="",style="solid", color="black", weight=3]; 172.97/119.06 4411[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4411 -> 4441[label="",style="solid", color="black", weight=3]; 172.97/119.06 4412[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4412 -> 4442[label="",style="solid", color="black", weight=3]; 172.97/119.06 2926[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2926 -> 2968[label="",style="solid", color="black", weight=3]; 172.97/119.06 2927[label="vuz124",fontsize=16,color="green",shape="box"];2928[label="vuz126",fontsize=16,color="green",shape="box"];2929[label="vuz126",fontsize=16,color="green",shape="box"];4435[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4435 -> 4477[label="",style="solid", color="black", weight=3]; 172.97/119.06 4436[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4436 -> 4478[label="",style="solid", color="black", weight=3]; 172.97/119.06 4437[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4437 -> 4479[label="",style="solid", color="black", weight=3]; 172.97/119.06 4438[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4438 -> 4480[label="",style="solid", color="black", weight=3]; 172.97/119.06 2935[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2935 -> 2973[label="",style="solid", color="black", weight=3]; 172.97/119.06 2936 -> 2407[label="",style="dashed", color="red", weight=0]; 172.97/119.06 2936[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2936 -> 2974[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2936 -> 2975[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2936 -> 2976[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3370[label="vuz160000",fontsize=16,color="green",shape="box"];3371[label="vuz1200000",fontsize=16,color="green",shape="box"];3429 -> 1699[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3429[label="primEqInt vuz158 vuz1180",fontsize=16,color="magenta"];3429 -> 3460[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3429 -> 3461[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3430[label="Integer vuz59 `quot` gcd0Gcd'0 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3430 -> 3462[label="",style="solid", color="black", weight=3]; 172.97/119.06 3431[label="Integer vuz59 `quot` abs (Integer vuz60)",fontsize=16,color="black",shape="box"];3431 -> 3463[label="",style="solid", color="black", weight=3]; 172.97/119.06 3384 -> 3372[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3384[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt vuz158) == vuz118) (abs (Integer vuz60)) (Integer (primNegInt vuz158))",fontsize=16,color="magenta"];3384 -> 3432[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3384 -> 3433[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 2950[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2951[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2952[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2953[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];4439 -> 4224[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4439[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4439 -> 4481[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4439 -> 4482[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 2404[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4440[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4440 -> 4483[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 4484[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 4485[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 4486[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 4487[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4440 -> 4488[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4441[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4441 -> 4489[label="",style="solid", color="black", weight=3]; 172.97/119.06 4442[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4442 -> 4490[label="",style="solid", color="black", weight=3]; 172.97/119.06 2968[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2968 -> 3009[label="",style="solid", color="black", weight=3]; 172.97/119.06 4477 -> 4336[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4477[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4477 -> 4494[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4477 -> 4495[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4478[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4478 -> 4496[label="",style="solid", color="black", weight=3]; 172.97/119.06 4479 -> 2368[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4479[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4479 -> 4497[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4479 -> 4498[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4479 -> 4499[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4479 -> 4500[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4479 -> 4501[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4479 -> 4502[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4480[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4480 -> 4503[label="",style="solid", color="black", weight=3]; 172.97/119.06 2973[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2973 -> 3014[label="",style="solid", color="black", weight=3]; 172.97/119.06 2974[label="vuz124",fontsize=16,color="green",shape="box"];2975[label="vuz126",fontsize=16,color="green",shape="box"];2976[label="vuz126",fontsize=16,color="green",shape="box"];3460[label="vuz1180",fontsize=16,color="green",shape="box"];3461[label="vuz158",fontsize=16,color="green",shape="box"];3462[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3462 -> 3516[label="",style="solid", color="black", weight=3]; 172.97/119.06 3463[label="Integer vuz59 `quot` absReal (Integer vuz60)",fontsize=16,color="black",shape="box"];3463 -> 3517[label="",style="solid", color="black", weight=3]; 172.97/119.06 3432 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3432[label="primNegInt vuz158",fontsize=16,color="magenta"];3432 -> 3464[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3433 -> 3373[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3433[label="Integer (primNegInt vuz158) == vuz118",fontsize=16,color="magenta"];3433 -> 3465[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4481[label="vuz2080",fontsize=16,color="green",shape="box"];4482[label="vuz2090",fontsize=16,color="green",shape="box"];4483[label="vuz211",fontsize=16,color="green",shape="box"];4484[label="vuz212",fontsize=16,color="green",shape="box"];4485[label="vuz206",fontsize=16,color="green",shape="box"];4486[label="vuz207",fontsize=16,color="green",shape="box"];4487[label="vuz210",fontsize=16,color="green",shape="box"];4488[label="vuz210",fontsize=16,color="green",shape="box"];4489[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4489 -> 4504[label="",style="solid", color="black", weight=3]; 172.97/119.06 4490 -> 2441[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4490[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)))",fontsize=16,color="magenta"];4490 -> 4505[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4490 -> 4506[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4490 -> 4507[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4490 -> 4508[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4490 -> 4509[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4490 -> 4510[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3009[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3009 -> 3054[label="",style="solid", color="black", weight=3]; 172.97/119.06 4494[label="vuz2160",fontsize=16,color="green",shape="box"];4495[label="vuz2170",fontsize=16,color="green",shape="box"];4496[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="black",shape="triangle"];4496 -> 4549[label="",style="solid", color="black", weight=3]; 172.97/119.06 4497[label="vuz219",fontsize=16,color="green",shape="box"];4498[label="vuz220",fontsize=16,color="green",shape="box"];4499[label="vuz214",fontsize=16,color="green",shape="box"];4500[label="vuz215",fontsize=16,color="green",shape="box"];4501[label="vuz218",fontsize=16,color="green",shape="box"];4502[label="vuz218",fontsize=16,color="green",shape="box"];4503 -> 4496[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4503[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="magenta"];3014[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3014 -> 3063[label="",style="solid", color="black", weight=3]; 172.97/119.06 3516[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3516 -> 3527[label="",style="solid", color="black", weight=3]; 172.97/119.06 3517[label="Integer vuz59 `quot` absReal2 (Integer vuz60)",fontsize=16,color="black",shape="box"];3517 -> 3528[label="",style="solid", color="black", weight=3]; 172.97/119.06 3464[label="vuz158",fontsize=16,color="green",shape="box"];3465 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3465[label="primNegInt vuz158",fontsize=16,color="magenta"];3465 -> 3518[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4504[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4504 -> 4550[label="",style="solid", color="black", weight=3]; 172.97/119.06 4505[label="vuz211",fontsize=16,color="green",shape="box"];4506[label="vuz212",fontsize=16,color="green",shape="box"];4507[label="vuz206",fontsize=16,color="green",shape="box"];4508[label="vuz207",fontsize=16,color="green",shape="box"];4509[label="vuz210",fontsize=16,color="green",shape="box"];4510[label="vuz210",fontsize=16,color="green",shape="box"];3054[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3054 -> 3106[label="",style="solid", color="black", weight=3]; 172.97/119.06 4549[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4549 -> 4594[label="",style="solid", color="black", weight=3]; 172.97/119.06 3063[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3063 -> 3112[label="",style="solid", color="black", weight=3]; 172.97/119.06 3527 -> 3533[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3527[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == fromInt (Pos Zero)) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="magenta"];3527 -> 3534[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3528 -> 3537[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3528[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];3528 -> 3538[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3518[label="vuz158",fontsize=16,color="green",shape="box"];4550[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4550 -> 4595[label="",style="solid", color="black", weight=3]; 172.97/119.06 3106[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3106 -> 3206[label="",style="solid", color="black", weight=3]; 172.97/119.06 4594 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4594[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)))",fontsize=16,color="magenta"];4594 -> 4620[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4621[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4622[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4623[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4624[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4625[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4626[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4627[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4594 -> 4628[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3112[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3112 -> 3212[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3213[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3214[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3215[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3216[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3217[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3112 -> 3218[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3534 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3534[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3533[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3533 -> 3541[label="",style="solid", color="black", weight=3]; 172.97/119.06 3538 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3538[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3537[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= vuz187)",fontsize=16,color="black",shape="triangle"];3537 -> 3542[label="",style="solid", color="black", weight=3]; 172.97/119.06 4595[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4595 -> 4629[label="",style="solid", color="black", weight=3]; 172.97/119.06 3206 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3206[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3206 -> 3261[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3262[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3263[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3264[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3265[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3266[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3206 -> 3267[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4620[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4621[label="vuz219",fontsize=16,color="green",shape="box"];4622[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4623[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4624[label="vuz220",fontsize=16,color="green",shape="box"];4625[label="vuz214",fontsize=16,color="green",shape="box"];4626[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4627[label="vuz218",fontsize=16,color="green",shape="box"];4628[label="vuz218",fontsize=16,color="green",shape="box"];3212 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3212[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3212 -> 3283[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3213[label="vuz124",fontsize=16,color="green",shape="box"];3214 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3214[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3214 -> 3284[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3215 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3215[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3215 -> 3285[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3216 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3216[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3216 -> 3286[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3217[label="vuz126",fontsize=16,color="green",shape="box"];3218[label="vuz126",fontsize=16,color="green",shape="box"];3541[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3541 -> 3547[label="",style="solid", color="black", weight=3]; 172.97/119.06 3542[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (compare (Integer vuz60) vuz187 /= LT)",fontsize=16,color="black",shape="box"];3542 -> 3548[label="",style="solid", color="black", weight=3]; 172.97/119.06 4629[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4629 -> 4657[label="",style="solid", color="black", weight=3]; 172.97/119.06 3261 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3261[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3261 -> 3348[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3262[label="vuz124",fontsize=16,color="green",shape="box"];3263 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3263[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3263 -> 3349[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3264 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3264[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3264 -> 3350[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3265 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3265[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3265 -> 3351[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3266[label="vuz126",fontsize=16,color="green",shape="box"];3267[label="vuz126",fontsize=16,color="green",shape="box"];3283[label="Neg Zero",fontsize=16,color="green",shape="box"];3284[label="Neg Zero",fontsize=16,color="green",shape="box"];3285[label="Neg Zero",fontsize=16,color="green",shape="box"];3286[label="Neg Zero",fontsize=16,color="green",shape="box"];3547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal2 (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3547 -> 3610[label="",style="solid", color="black", weight=3]; 172.97/119.06 3548[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz187 == LT))",fontsize=16,color="burlywood",shape="box"];5921[label="vuz187/Integer vuz1870",fontsize=10,color="white",style="solid",shape="box"];3548 -> 5921[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5921 -> 3611[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 4657 -> 2884[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4657[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)))",fontsize=16,color="magenta"];4657 -> 4688[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4689[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4690[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4691[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4692[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4693[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4694[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4695[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4657 -> 4696[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3348[label="Pos Zero",fontsize=16,color="green",shape="box"];3349[label="Pos Zero",fontsize=16,color="green",shape="box"];3350[label="Pos Zero",fontsize=16,color="green",shape="box"];3351[label="Pos Zero",fontsize=16,color="green",shape="box"];3610 -> 3631[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3610[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3610 -> 3632[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3610 -> 3633[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3611[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1870) == LT))",fontsize=16,color="black",shape="box"];3611 -> 3638[label="",style="solid", color="black", weight=3]; 172.97/119.06 4688 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4688[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4688 -> 4723[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4689[label="vuz211",fontsize=16,color="green",shape="box"];4690 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4690[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4690 -> 4724[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4691 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4691[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4691 -> 4725[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4692[label="vuz212",fontsize=16,color="green",shape="box"];4693[label="vuz206",fontsize=16,color="green",shape="box"];4694 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.06 4694[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4694 -> 4726[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 4695[label="vuz210",fontsize=16,color="green",shape="box"];4696[label="vuz210",fontsize=16,color="green",shape="box"];3632 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3632[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3633 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3633[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3631[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= vuz196) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= vuz195) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3631 -> 3639[label="",style="solid", color="black", weight=3]; 172.97/119.06 3638[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5922[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5922[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5922 -> 3679[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5923[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5923[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5923 -> 3680[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 4723[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4724[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4725[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4726[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];3639[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3639 -> 3681[label="",style="solid", color="black", weight=3]; 172.97/119.06 3679[label="Integer vuz59 `quot` absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5924[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5924[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5924 -> 3736[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5925[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5925[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5925 -> 3737[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3680[label="Integer vuz59 `quot` absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5926[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5926[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5926 -> 3738[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5927[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5927[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5927 -> 3739[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3681[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5928[label="vuz196/Integer vuz1960",fontsize=10,color="white",style="solid",shape="box"];3681 -> 5928[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5928 -> 3740[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3736[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5929[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5929[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5929 -> 3758[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5930[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5930[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5930 -> 3759[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3737[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5931[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5931[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5931 -> 3760[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5932[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5932[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5932 -> 3761[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3738[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5933[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5933[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5933 -> 3762[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5934[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5934[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5934 -> 3763[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3739[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5935[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5935[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5935 -> 3764[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5936[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5936[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5936 -> 3765[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3740[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3740 -> 3766[label="",style="solid", color="black", weight=3]; 172.97/119.06 3758[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3758 -> 3802[label="",style="solid", color="black", weight=3]; 172.97/119.06 3759[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3759 -> 3803[label="",style="solid", color="black", weight=3]; 172.97/119.06 3760[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5937[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5937[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5937 -> 3804[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5938[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5938[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5938 -> 3805[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3761[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5939[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5939[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5939 -> 3806[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5940[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5940[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5940 -> 3807[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3762[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3762 -> 3808[label="",style="solid", color="black", weight=3]; 172.97/119.06 3763[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3763 -> 3809[label="",style="solid", color="black", weight=3]; 172.97/119.06 3764[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5941[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5941[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5941 -> 3810[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5942[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5942[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5942 -> 3811[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3765[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5943[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5943[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5943 -> 3812[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5944[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5944[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5944 -> 3813[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3766[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5945[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5945[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5945 -> 3814[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5946[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5946[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5946 -> 3815[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3802 -> 4994[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3802[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz18700 == LT))",fontsize=16,color="magenta"];3802 -> 4995[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3802 -> 4996[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3802 -> 4997[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3802 -> 4998[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3803[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];3803 -> 3842[label="",style="solid", color="black", weight=3]; 172.97/119.06 3804[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3804 -> 3843[label="",style="solid", color="black", weight=3]; 172.97/119.06 3805[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3805 -> 3844[label="",style="solid", color="black", weight=3]; 172.97/119.06 3806[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3806 -> 3845[label="",style="solid", color="black", weight=3]; 172.97/119.06 3807[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3807 -> 3846[label="",style="solid", color="black", weight=3]; 172.97/119.06 3808[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];3808 -> 3847[label="",style="solid", color="black", weight=3]; 172.97/119.06 3809 -> 5039[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3809[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz18700 (Succ vuz6000) == LT))",fontsize=16,color="magenta"];3809 -> 5040[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3809 -> 5041[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3809 -> 5042[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3809 -> 5043[label="",style="dashed", color="magenta", weight=3]; 172.97/119.06 3810[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3810 -> 3850[label="",style="solid", color="black", weight=3]; 172.97/119.06 3811[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3811 -> 3851[label="",style="solid", color="black", weight=3]; 172.97/119.06 3812[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3812 -> 3852[label="",style="solid", color="black", weight=3]; 172.97/119.06 3813[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3813 -> 3853[label="",style="solid", color="black", weight=3]; 172.97/119.06 3814[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5947[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5947[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5947 -> 3854[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5948[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5948[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5948 -> 3855[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3815[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5949[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5949[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5949 -> 3856[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5950[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5950[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5950 -> 3857[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 4995[label="vuz18700",fontsize=16,color="green",shape="box"];4996[label="vuz6000",fontsize=16,color="green",shape="box"];4997[label="Succ vuz6000",fontsize=16,color="green",shape="box"];4998[label="vuz59",fontsize=16,color="green",shape="box"];4994[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz238 vuz239 == LT))",fontsize=16,color="burlywood",shape="triangle"];5951[label="vuz238/Succ vuz2380",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5951[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5951 -> 5035[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5952[label="vuz238/Zero",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5952[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5952 -> 5036[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3842[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not False)",fontsize=16,color="black",shape="triangle"];3842 -> 3873[label="",style="solid", color="black", weight=3]; 172.97/119.06 3843[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz187000) == LT))",fontsize=16,color="black",shape="box"];3843 -> 3874[label="",style="solid", color="black", weight=3]; 172.97/119.06 3844[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3844 -> 3875[label="",style="solid", color="black", weight=3]; 172.97/119.06 3845[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3845 -> 3876[label="",style="solid", color="black", weight=3]; 172.97/119.06 3846 -> 3844[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3846[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3847[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not True)",fontsize=16,color="black",shape="box"];3847 -> 3877[label="",style="solid", color="black", weight=3]; 172.97/119.06 5040[label="vuz18700",fontsize=16,color="green",shape="box"];5041[label="vuz59",fontsize=16,color="green",shape="box"];5042[label="vuz6000",fontsize=16,color="green",shape="box"];5043[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5039[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz243 vuz244 == LT))",fontsize=16,color="burlywood",shape="triangle"];5953[label="vuz243/Succ vuz2430",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5953[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5953 -> 5080[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5954[label="vuz243/Zero",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5954[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5954 -> 5081[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3850[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3850 -> 3880[label="",style="solid", color="black", weight=3]; 172.97/119.06 3851[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3851 -> 3881[label="",style="solid", color="black", weight=3]; 172.97/119.06 3852[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz187000) Zero == LT))",fontsize=16,color="black",shape="box"];3852 -> 3882[label="",style="solid", color="black", weight=3]; 172.97/119.06 3853 -> 3851[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3853[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3854[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5955[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5955[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5955 -> 3883[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5956[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5956[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5956 -> 3884[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3855[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5957[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5957[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5957 -> 3885[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5958[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5958[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5958 -> 3886[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3856[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5959[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5959[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5959 -> 3887[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5960[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5960[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5960 -> 3888[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3857[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5961[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5961[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5961 -> 3889[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5962[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5962[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5962 -> 3890[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5035[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5963[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5963[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5963 -> 5082[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5964[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5964[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5964 -> 5083[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5036[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5965[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5965[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5965 -> 5084[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5966[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5966[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5966 -> 5085[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3873[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3873 -> 3930[label="",style="solid", color="black", weight=3]; 172.97/119.06 3874[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3874 -> 3931[label="",style="solid", color="black", weight=3]; 172.97/119.06 3875[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3875 -> 3932[label="",style="solid", color="black", weight=3]; 172.97/119.06 3876 -> 3875[label="",style="dashed", color="red", weight=0]; 172.97/119.06 3876[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];3877[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) False",fontsize=16,color="black",shape="box"];3877 -> 3933[label="",style="solid", color="black", weight=3]; 172.97/119.06 5080[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5967[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5967[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5967 -> 5101[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5968[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5968[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5968 -> 5102[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5081[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5969[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5969[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5969 -> 5103[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5970[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5970[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5970 -> 5104[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3880[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];3880 -> 3936[label="",style="solid", color="black", weight=3]; 172.97/119.06 3881[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3881 -> 3937[label="",style="solid", color="black", weight=3]; 172.97/119.06 3882[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3882 -> 3938[label="",style="solid", color="black", weight=3]; 172.97/119.06 3883[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3883 -> 3939[label="",style="solid", color="black", weight=3]; 172.97/119.06 3884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3884 -> 3940[label="",style="solid", color="black", weight=3]; 172.97/119.06 3885[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5971[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5971[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5971 -> 3941[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5972[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5972[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5972 -> 3942[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3886[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5973[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5973[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5973 -> 3943[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5974[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5974[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5974 -> 3944[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3887[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3887 -> 3945[label="",style="solid", color="black", weight=3]; 172.97/119.06 3888[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3888 -> 3946[label="",style="solid", color="black", weight=3]; 172.97/119.06 3889[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5975[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5975[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5975 -> 3947[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5976[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5976[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5976 -> 3948[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 3890[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5977[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5977[label="",style="solid", color="burlywood", weight=9]; 172.97/119.06 5977 -> 3949[label="",style="solid", color="burlywood", weight=3]; 172.97/119.06 5978[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5978[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5978 -> 3950[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5082[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5082 -> 5105[label="",style="solid", color="black", weight=3]; 172.97/119.07 5083[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) Zero == LT))",fontsize=16,color="black",shape="box"];5083 -> 5106[label="",style="solid", color="black", weight=3]; 172.97/119.07 5084[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5084 -> 5107[label="",style="solid", color="black", weight=3]; 172.97/119.07 5085[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5085 -> 5108[label="",style="solid", color="black", weight=3]; 172.97/119.07 3930 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3930[label="Integer vuz59 `quot` Integer (Pos (Succ vuz6000))",fontsize=16,color="magenta"];3930 -> 4131[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3931[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];3931 -> 3976[label="",style="solid", color="black", weight=3]; 172.97/119.07 3932[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];3932 -> 3977[label="",style="solid", color="black", weight=3]; 172.97/119.07 3933[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) otherwise",fontsize=16,color="black",shape="box"];3933 -> 3978[label="",style="solid", color="black", weight=3]; 172.97/119.07 5101[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5101 -> 5123[label="",style="solid", color="black", weight=3]; 172.97/119.07 5102[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) Zero == LT))",fontsize=16,color="black",shape="box"];5102 -> 5124[label="",style="solid", color="black", weight=3]; 172.97/119.07 5103[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5103 -> 5125[label="",style="solid", color="black", weight=3]; 172.97/119.07 5104[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5104 -> 5126[label="",style="solid", color="black", weight=3]; 172.97/119.07 3936[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];3936 -> 3983[label="",style="solid", color="black", weight=3]; 172.97/119.07 3937[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];3937 -> 3984[label="",style="solid", color="black", weight=3]; 172.97/119.07 3938 -> 3881[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3938[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];3939 -> 5153[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3939[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3939 -> 5154[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3939 -> 5155[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3939 -> 5156[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3939 -> 5157[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3939 -> 5158[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3939 -> 5159[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3940[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3940 -> 3987[label="",style="solid", color="black", weight=3]; 172.97/119.07 3941[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3941 -> 3988[label="",style="solid", color="black", weight=3]; 172.97/119.07 3942[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3942 -> 3989[label="",style="solid", color="black", weight=3]; 172.97/119.07 3943[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3943 -> 3990[label="",style="solid", color="black", weight=3]; 172.97/119.07 3944[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3944 -> 3991[label="",style="solid", color="black", weight=3]; 172.97/119.07 3945[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3945 -> 3992[label="",style="solid", color="black", weight=3]; 172.97/119.07 3946 -> 5218[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3946[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3946 -> 5219[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3946 -> 5220[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3946 -> 5221[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3946 -> 5222[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3946 -> 5223[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3946 -> 5224[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3947[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3947 -> 3995[label="",style="solid", color="black", weight=3]; 172.97/119.07 3948[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3948 -> 3996[label="",style="solid", color="black", weight=3]; 172.97/119.07 3949[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3949 -> 3997[label="",style="solid", color="black", weight=3]; 172.97/119.07 3950[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3950 -> 3998[label="",style="solid", color="black", weight=3]; 172.97/119.07 5105 -> 4994[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5105[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz2380 vuz2390 == LT))",fontsize=16,color="magenta"];5105 -> 5127[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5105 -> 5128[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5106 -> 3803[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5106[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (GT == LT))",fontsize=16,color="magenta"];5106 -> 5129[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5106 -> 5130[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5107[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (LT == LT))",fontsize=16,color="black",shape="box"];5107 -> 5131[label="",style="solid", color="black", weight=3]; 172.97/119.07 5108[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5108 -> 5132[label="",style="solid", color="black", weight=3]; 172.97/119.07 4131[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4130[label="Integer vuz59 `quot` Integer vuz201",fontsize=16,color="black",shape="triangle"];4130 -> 4135[label="",style="solid", color="black", weight=3]; 172.97/119.07 3976[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];3976 -> 4020[label="",style="solid", color="black", weight=3]; 172.97/119.07 3977 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3977[label="Integer vuz59 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];3977 -> 4132[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 3978[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3978 -> 4022[label="",style="solid", color="black", weight=3]; 172.97/119.07 5123 -> 5039[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5123[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz2430 vuz2440 == LT))",fontsize=16,color="magenta"];5123 -> 5144[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5123 -> 5145[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5124[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (GT == LT))",fontsize=16,color="black",shape="box"];5124 -> 5146[label="",style="solid", color="black", weight=3]; 172.97/119.07 5125 -> 3808[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5125[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (LT == LT))",fontsize=16,color="magenta"];5125 -> 5147[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5125 -> 5148[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5126[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5126 -> 5149[label="",style="solid", color="black", weight=3]; 172.97/119.07 3983[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];3983 -> 4027[label="",style="solid", color="black", weight=3]; 172.97/119.07 3984 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3984[label="Integer vuz59 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];3984 -> 4133[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5154[label="vuz59",fontsize=16,color="green",shape="box"];5155[label="vuz6000",fontsize=16,color="green",shape="box"];5156[label="vuz158",fontsize=16,color="green",shape="box"];5157[label="vuz186",fontsize=16,color="green",shape="box"];5158[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5159[label="vuz19600",fontsize=16,color="green",shape="box"];5153[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="triangle"];5979[label="vuz248/Succ vuz2480",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5979[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5979 -> 5214[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5980[label="vuz248/Zero",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5980[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5980 -> 5215[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 3987[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3987 -> 4031[label="",style="solid", color="black", weight=3]; 172.97/119.07 3988[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3988 -> 4032[label="",style="solid", color="black", weight=3]; 172.97/119.07 3989[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3989 -> 4033[label="",style="solid", color="black", weight=3]; 172.97/119.07 3990[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3990 -> 4034[label="",style="solid", color="black", weight=3]; 172.97/119.07 3991 -> 3989[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3991[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3992[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3992 -> 4035[label="",style="solid", color="black", weight=3]; 172.97/119.07 5219[label="vuz6000",fontsize=16,color="green",shape="box"];5220[label="vuz186",fontsize=16,color="green",shape="box"];5221[label="vuz158",fontsize=16,color="green",shape="box"];5222[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5223[label="vuz59",fontsize=16,color="green",shape="box"];5224[label="vuz19600",fontsize=16,color="green",shape="box"];5218[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="triangle"];5981[label="vuz255/Succ vuz2550",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5981[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5981 -> 5279[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5982[label="vuz255/Zero",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5982[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5982 -> 5280[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 3995[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3995 -> 4038[label="",style="solid", color="black", weight=3]; 172.97/119.07 3996[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3996 -> 4039[label="",style="solid", color="black", weight=3]; 172.97/119.07 3997[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3997 -> 4040[label="",style="solid", color="black", weight=3]; 172.97/119.07 3998 -> 3996[label="",style="dashed", color="red", weight=0]; 172.97/119.07 3998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];5127[label="vuz2390",fontsize=16,color="green",shape="box"];5128[label="vuz2380",fontsize=16,color="green",shape="box"];5129[label="vuz236",fontsize=16,color="green",shape="box"];5130[label="vuz237",fontsize=16,color="green",shape="box"];5131[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not True)",fontsize=16,color="black",shape="box"];5131 -> 5150[label="",style="solid", color="black", weight=3]; 172.97/119.07 5132 -> 3842[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5132[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not False)",fontsize=16,color="magenta"];5132 -> 5151[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5132 -> 5152[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4135[label="Integer (primQuotInt vuz59 vuz201)",fontsize=16,color="green",shape="box"];4135 -> 4174[label="",style="dashed", color="green", weight=3]; 172.97/119.07 4020[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];4020 -> 4079[label="",style="solid", color="black", weight=3]; 172.97/119.07 4132[label="Pos Zero",fontsize=16,color="green",shape="box"];4022[label="Integer vuz59 `quot` (`negate` Integer (Neg (Succ vuz6000)))",fontsize=16,color="black",shape="box"];4022 -> 4081[label="",style="solid", color="black", weight=3]; 172.97/119.07 5144[label="vuz2430",fontsize=16,color="green",shape="box"];5145[label="vuz2440",fontsize=16,color="green",shape="box"];5146[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="black",shape="triangle"];5146 -> 5216[label="",style="solid", color="black", weight=3]; 172.97/119.07 5147[label="vuz242",fontsize=16,color="green",shape="box"];5148[label="vuz241",fontsize=16,color="green",shape="box"];5149 -> 5146[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5149[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="magenta"];4027[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];4027 -> 4087[label="",style="solid", color="black", weight=3]; 172.97/119.07 4133[label="Neg Zero",fontsize=16,color="green",shape="box"];5214[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5983[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5983[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5983 -> 5281[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5984[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5984[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5984 -> 5282[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5215[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5985[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5985[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5985 -> 5283[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5986[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5986[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5986 -> 5284[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4031[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4031 -> 4091[label="",style="solid", color="black", weight=3]; 172.97/119.07 4032[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4032 -> 4092[label="",style="solid", color="black", weight=3]; 172.97/119.07 4033[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4033 -> 4093[label="",style="solid", color="black", weight=3]; 172.97/119.07 4034 -> 4033[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];4035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4035 -> 4094[label="",style="solid", color="black", weight=3]; 172.97/119.07 5279[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5987[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5987[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5987 -> 5287[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5988[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5988[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5988 -> 5288[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5280[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5989[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5989[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5989 -> 5289[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5990[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5990[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5990 -> 5290[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4038[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4038 -> 4097[label="",style="solid", color="black", weight=3]; 172.97/119.07 4039[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4039 -> 4098[label="",style="solid", color="black", weight=3]; 172.97/119.07 4040[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4040 -> 4099[label="",style="solid", color="black", weight=3]; 172.97/119.07 5150[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) False",fontsize=16,color="black",shape="box"];5150 -> 5217[label="",style="solid", color="black", weight=3]; 172.97/119.07 5151[label="vuz236",fontsize=16,color="green",shape="box"];5152[label="vuz237",fontsize=16,color="green",shape="box"];4174[label="primQuotInt vuz59 vuz201",fontsize=16,color="burlywood",shape="box"];5991[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5991[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5991 -> 4188[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5992[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5992[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5992 -> 4189[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4079[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];4079 -> 4127[label="",style="solid", color="black", weight=3]; 172.97/119.07 4081 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4081[label="Integer vuz59 `quot` Integer (primNegInt (Neg (Succ vuz6000)))",fontsize=16,color="magenta"];4081 -> 4134[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5216[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) True",fontsize=16,color="black",shape="box"];5216 -> 5285[label="",style="solid", color="black", weight=3]; 172.97/119.07 4087[label="Integer vuz59 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];4087 -> 4141[label="",style="solid", color="black", weight=3]; 172.97/119.07 5281[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5281 -> 5291[label="",style="solid", color="black", weight=3]; 172.97/119.07 5282[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5282 -> 5292[label="",style="solid", color="black", weight=3]; 172.97/119.07 5283[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5283 -> 5293[label="",style="solid", color="black", weight=3]; 172.97/119.07 5284[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5284 -> 5294[label="",style="solid", color="black", weight=3]; 172.97/119.07 4091 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4091[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4091 -> 4427[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4091 -> 4428[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4092[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4092 -> 4147[label="",style="solid", color="black", weight=3]; 172.97/119.07 4093[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4093 -> 4148[label="",style="solid", color="black", weight=3]; 172.97/119.07 4094[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4094 -> 4149[label="",style="solid", color="black", weight=3]; 172.97/119.07 5287[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5287 -> 5298[label="",style="solid", color="black", weight=3]; 172.97/119.07 5288[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5288 -> 5299[label="",style="solid", color="black", weight=3]; 172.97/119.07 5289[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5289 -> 5300[label="",style="solid", color="black", weight=3]; 172.97/119.07 5290[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5290 -> 5301[label="",style="solid", color="black", weight=3]; 172.97/119.07 4097[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4097 -> 4154[label="",style="solid", color="black", weight=3]; 172.97/119.07 4098[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4098 -> 4155[label="",style="solid", color="black", weight=3]; 172.97/119.07 4099 -> 4039[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4099[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];5217[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) otherwise",fontsize=16,color="black",shape="box"];5217 -> 5286[label="",style="solid", color="black", weight=3]; 172.97/119.07 4188[label="primQuotInt (Pos vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5993[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5993[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5993 -> 4297[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5994[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5994[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5994 -> 4298[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4189[label="primQuotInt (Neg vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5995[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5995[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5995 -> 4299[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5996[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5996[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5996 -> 4300[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4127[label="Integer vuz59 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];4127 -> 4161[label="",style="solid", color="black", weight=3]; 172.97/119.07 4134 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4134[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4134 -> 4162[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5285 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5285[label="Integer vuz241 `quot` Integer (Neg (Succ vuz242))",fontsize=16,color="magenta"];5285 -> 5295[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5285 -> 5296[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4141 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4141[label="Integer vuz59 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];4141 -> 4180[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5291 -> 5153[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5291[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5291 -> 5302[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5291 -> 5303[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5292 -> 3940[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5292[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5292 -> 5304[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5292 -> 5305[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5292 -> 5306[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5292 -> 5307[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5293[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5293 -> 5308[label="",style="solid", color="black", weight=3]; 172.97/119.07 5294[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5294 -> 5309[label="",style="solid", color="black", weight=3]; 172.97/119.07 4427[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4428[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4426[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz222 `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer vuz221 `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4426 -> 4443[label="",style="solid", color="black", weight=3]; 172.97/119.07 4147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4147 -> 4190[label="",style="solid", color="black", weight=3]; 172.97/119.07 4148 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4148[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4148 -> 4429[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4148 -> 4430[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4149 -> 4192[label="",style="solid", color="black", weight=3]; 172.97/119.07 5298 -> 5218[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5298[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5298 -> 5311[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5298 -> 5312[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5299[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5299 -> 5313[label="",style="solid", color="black", weight=3]; 172.97/119.07 5300 -> 3945[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5300[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5300 -> 5314[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5300 -> 5315[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5300 -> 5316[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5300 -> 5317[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5301[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5301 -> 5318[label="",style="solid", color="black", weight=3]; 172.97/119.07 4154[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4154 -> 4197[label="",style="solid", color="black", weight=3]; 172.97/119.07 4155 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4155[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Neg Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4155 -> 4431[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4155 -> 4432[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5286[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) True",fontsize=16,color="black",shape="box"];5286 -> 5297[label="",style="solid", color="black", weight=3]; 172.97/119.07 4297[label="primQuotInt (Pos vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];5997[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5997[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5997 -> 4413[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 5998[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5998[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5998 -> 4414[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4298[label="primQuotInt (Pos vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];5999[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4298 -> 5999[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 5999 -> 4415[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 6000[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4298 -> 6000[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6000 -> 4416[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4299[label="primQuotInt (Neg vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];6001[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6001[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6001 -> 4417[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 6002[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6002[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6002 -> 4418[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4300[label="primQuotInt (Neg vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];6003[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6003[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6003 -> 4419[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 6004[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6004[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6004 -> 4420[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4161 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4161[label="Integer vuz59 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];4161 -> 4205[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4162[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5295[label="vuz241",fontsize=16,color="green",shape="box"];5296[label="Neg (Succ vuz242)",fontsize=16,color="green",shape="box"];4180 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4180[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4180 -> 4212[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5302[label="vuz2480",fontsize=16,color="green",shape="box"];5303[label="vuz2490",fontsize=16,color="green",shape="box"];5304[label="vuz250",fontsize=16,color="green",shape="box"];5305[label="vuz246",fontsize=16,color="green",shape="box"];5306[label="vuz247",fontsize=16,color="green",shape="box"];5307[label="vuz251",fontsize=16,color="green",shape="box"];5308[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5308 -> 5319[label="",style="solid", color="black", weight=3]; 172.97/119.07 5309 -> 3987[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5309[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250)",fontsize=16,color="magenta"];5309 -> 5320[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5309 -> 5321[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5309 -> 5322[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5309 -> 5323[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4443 -> 4491[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4443[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primRemInt vuz222 vuz158) == vuz186) (Integer vuz158) (Integer (primRemInt vuz222 vuz158))",fontsize=16,color="magenta"];4443 -> 4492[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4443 -> 4493[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4190[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4190 -> 4301[label="",style="solid", color="black", weight=3]; 172.97/119.07 4429[label="Pos Zero",fontsize=16,color="green",shape="box"];4430[label="Pos Zero",fontsize=16,color="green",shape="box"];4192[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4192 -> 4304[label="",style="solid", color="black", weight=3]; 172.97/119.07 5311[label="vuz2560",fontsize=16,color="green",shape="box"];5312[label="vuz2550",fontsize=16,color="green",shape="box"];5313[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="black",shape="triangle"];5313 -> 5326[label="",style="solid", color="black", weight=3]; 172.97/119.07 5314[label="vuz257",fontsize=16,color="green",shape="box"];5315[label="vuz254",fontsize=16,color="green",shape="box"];5316[label="vuz253",fontsize=16,color="green",shape="box"];5317[label="vuz258",fontsize=16,color="green",shape="box"];5318 -> 5313[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5318[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="magenta"];4197[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4197 -> 4310[label="",style="solid", color="black", weight=3]; 172.97/119.07 4431[label="Neg Zero",fontsize=16,color="green",shape="box"];4432[label="Neg Zero",fontsize=16,color="green",shape="box"];5297[label="Integer vuz236 `quot` (`negate` Integer (Pos (Succ vuz237)))",fontsize=16,color="black",shape="box"];5297 -> 5310[label="",style="solid", color="black", weight=3]; 172.97/119.07 4413[label="primQuotInt (Pos vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4413 -> 4444[label="",style="solid", color="black", weight=3]; 172.97/119.07 4414[label="primQuotInt (Pos vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4414 -> 4445[label="",style="solid", color="black", weight=3]; 172.97/119.07 4415[label="primQuotInt (Pos vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4415 -> 4446[label="",style="solid", color="black", weight=3]; 172.97/119.07 4416[label="primQuotInt (Pos vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4416 -> 4447[label="",style="solid", color="black", weight=3]; 172.97/119.07 4417[label="primQuotInt (Neg vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4417 -> 4448[label="",style="solid", color="black", weight=3]; 172.97/119.07 4418[label="primQuotInt (Neg vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4418 -> 4449[label="",style="solid", color="black", weight=3]; 172.97/119.07 4419[label="primQuotInt (Neg vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4419 -> 4450[label="",style="solid", color="black", weight=3]; 172.97/119.07 4420[label="primQuotInt (Neg vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4420 -> 4451[label="",style="solid", color="black", weight=3]; 172.97/119.07 4205 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4205[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4205 -> 4320[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4212[label="Neg Zero",fontsize=16,color="green",shape="box"];5319[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5319 -> 5327[label="",style="solid", color="black", weight=3]; 172.97/119.07 5320[label="vuz250",fontsize=16,color="green",shape="box"];5321[label="vuz246",fontsize=16,color="green",shape="box"];5322[label="vuz247",fontsize=16,color="green",shape="box"];5323[label="vuz251",fontsize=16,color="green",shape="box"];4492 -> 2122[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4492[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4492 -> 4511[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4492 -> 4512[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4493 -> 3373[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4493[label="Integer (primRemInt vuz222 vuz158) == vuz186",fontsize=16,color="magenta"];4493 -> 4513[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4493 -> 4514[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4491[label="Integer vuz59 `quot` gcd0Gcd'1 vuz223 (Integer vuz158) (Integer vuz224)",fontsize=16,color="burlywood",shape="triangle"];6005[label="vuz223/False",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6005[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6005 -> 4515[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 6006[label="vuz223/True",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6006[label="",style="solid", color="burlywood", weight=9]; 172.97/119.07 6006 -> 4516[label="",style="solid", color="burlywood", weight=3]; 172.97/119.07 4301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4301 -> 4421[label="",style="solid", color="black", weight=3]; 172.97/119.07 4304 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4304[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="magenta"];4304 -> 4433[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4304 -> 4434[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5326[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5326 -> 5329[label="",style="solid", color="black", weight=3]; 172.97/119.07 4310[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4310 -> 4457[label="",style="solid", color="black", weight=3]; 172.97/119.07 5310 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5310[label="Integer vuz236 `quot` Integer (primNegInt (Pos (Succ vuz237)))",fontsize=16,color="magenta"];5310 -> 5324[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5310 -> 5325[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4444[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4444 -> 4517[label="",style="dashed", color="green", weight=3]; 172.97/119.07 4445 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4445[label="error []",fontsize=16,color="magenta"];4446[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4446 -> 4518[label="",style="dashed", color="green", weight=3]; 172.97/119.07 4447 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4447[label="error []",fontsize=16,color="magenta"];4448[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4448 -> 4519[label="",style="dashed", color="green", weight=3]; 172.97/119.07 4449 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4449[label="error []",fontsize=16,color="magenta"];4450[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4450 -> 4520[label="",style="dashed", color="green", weight=3]; 172.97/119.07 4451 -> 1176[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4451[label="error []",fontsize=16,color="magenta"];4320[label="Pos Zero",fontsize=16,color="green",shape="box"];5327[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5327 -> 5330[label="",style="solid", color="black", weight=3]; 172.97/119.07 4511[label="vuz222",fontsize=16,color="green",shape="box"];4512[label="vuz158",fontsize=16,color="green",shape="box"];4513 -> 2122[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4513[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4513 -> 4551[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4513 -> 4552[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4514[label="vuz186",fontsize=16,color="green",shape="box"];4515[label="Integer vuz59 `quot` gcd0Gcd'1 False (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4515 -> 4553[label="",style="solid", color="black", weight=3]; 172.97/119.07 4516[label="Integer vuz59 `quot` gcd0Gcd'1 True (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4516 -> 4554[label="",style="solid", color="black", weight=3]; 172.97/119.07 4421[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4421 -> 4474[label="",style="solid", color="black", weight=3]; 172.97/119.07 4433 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4433[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4433 -> 4475[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4434 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4434[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4434 -> 4476[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5329 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5329[label="Integer vuz253 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz254)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (Integer (Neg (Succ vuz254)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5329 -> 5331[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5329 -> 5332[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5329 -> 5333[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5329 -> 5334[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5329 -> 5335[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4457 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4457[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4457 -> 4526[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4457 -> 4527[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5324[label="vuz236",fontsize=16,color="green",shape="box"];5325 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5325[label="primNegInt (Pos (Succ vuz237))",fontsize=16,color="magenta"];5325 -> 5328[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4517 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4517[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4517 -> 4555[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4517 -> 4556[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4518 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4518[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4518 -> 4557[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4518 -> 4558[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4519 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4519[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4519 -> 4559[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4519 -> 4560[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4520 -> 1210[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4520[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4520 -> 4561[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4520 -> 4562[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5330[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5330 -> 5336[label="",style="solid", color="black", weight=3]; 172.97/119.07 4551[label="vuz222",fontsize=16,color="green",shape="box"];4552[label="vuz158",fontsize=16,color="green",shape="box"];4553[label="Integer vuz59 `quot` gcd0Gcd'0 (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4553 -> 4596[label="",style="solid", color="black", weight=3]; 172.97/119.07 4554 -> 4130[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4554[label="Integer vuz59 `quot` Integer vuz158",fontsize=16,color="magenta"];4554 -> 4597[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4474 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4474[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4474 -> 4547[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4474 -> 4548[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4475[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];4476[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5331[label="vuz257",fontsize=16,color="green",shape="box"];5332[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5333[label="vuz253",fontsize=16,color="green",shape="box"];5334[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5335[label="vuz258",fontsize=16,color="green",shape="box"];4526 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4526[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4526 -> 4570[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4527 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4527[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4527 -> 4571[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5328[label="Pos (Succ vuz237)",fontsize=16,color="green",shape="box"];4555[label="vuz20100",fontsize=16,color="green",shape="box"];4556[label="vuz590",fontsize=16,color="green",shape="box"];4557[label="vuz20100",fontsize=16,color="green",shape="box"];4558[label="vuz590",fontsize=16,color="green",shape="box"];4559[label="vuz20100",fontsize=16,color="green",shape="box"];4560[label="vuz590",fontsize=16,color="green",shape="box"];4561[label="vuz20100",fontsize=16,color="green",shape="box"];4562[label="vuz590",fontsize=16,color="green",shape="box"];5336[label="Integer vuz246 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5336 -> 5337[label="",style="solid", color="black", weight=3]; 172.97/119.07 4596[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4596 -> 4630[label="",style="solid", color="black", weight=3]; 172.97/119.07 4597[label="vuz158",fontsize=16,color="green",shape="box"];4547 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4547[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4547 -> 4592[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4548 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4548[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4548 -> 4593[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4570[label="Neg Zero",fontsize=16,color="green",shape="box"];4571[label="Neg Zero",fontsize=16,color="green",shape="box"];5337 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5337[label="Integer vuz246 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="magenta"];5337 -> 5338[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5337 -> 5339[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5337 -> 5340[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5337 -> 5341[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5337 -> 5342[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4630[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4630 -> 4658[label="",style="solid", color="black", weight=3]; 172.97/119.07 4592[label="Pos Zero",fontsize=16,color="green",shape="box"];4593[label="Pos Zero",fontsize=16,color="green",shape="box"];5338[label="vuz250",fontsize=16,color="green",shape="box"];5339 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5339[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5339 -> 5343[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5340[label="vuz246",fontsize=16,color="green",shape="box"];5341 -> 471[label="",style="dashed", color="red", weight=0]; 172.97/119.07 5341[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5341 -> 5344[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5342[label="vuz251",fontsize=16,color="green",shape="box"];4658 -> 4426[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4658[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 `rem` Integer vuz224 == fromInt (Pos Zero)) (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="magenta"];4658 -> 4697[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4658 -> 4698[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4658 -> 4699[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 4658 -> 4700[label="",style="dashed", color="magenta", weight=3]; 172.97/119.07 5343[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];5344[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];4697[label="vuz224",fontsize=16,color="green",shape="box"];4698[label="vuz158",fontsize=16,color="green",shape="box"];4699[label="vuz158",fontsize=16,color="green",shape="box"];4700 -> 2031[label="",style="dashed", color="red", weight=0]; 172.97/119.07 4700[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];} 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (12) 172.97/119.07 Complex Obligation (AND) 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (13) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot6(vuz214, vuz215, Succ(vuz2160), Succ(vuz2170), vuz218, vuz219, vuz220) -> new_quot6(vuz214, vuz215, vuz2160, vuz2170, vuz218, vuz219, vuz220) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (14) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_quot6(vuz214, vuz215, Succ(vuz2160), Succ(vuz2170), vuz218, vuz219, vuz220) -> new_quot6(vuz214, vuz215, vuz2160, vuz2170, vuz218, vuz219, vuz220) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (15) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (16) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot5(vuz59, vuz158, Succ(vuz160000), Succ(vuz1200000), vuz118, vuz60, vuz157) -> new_quot5(vuz59, vuz158, vuz160000, vuz1200000, vuz118, vuz60, vuz157) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (17) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_quot5(vuz59, vuz158, Succ(vuz160000), Succ(vuz1200000), vuz118, vuz60, vuz157) -> new_quot5(vuz59, vuz158, vuz160000, vuz1200000, vuz118, vuz60, vuz157) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (18) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (19) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot3(vuz253, vuz254, Succ(vuz2550), Succ(vuz2560), vuz257, vuz258) -> new_quot3(vuz253, vuz254, vuz2550, vuz2560, vuz257, vuz258) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (20) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_quot3(vuz253, vuz254, Succ(vuz2550), Succ(vuz2560), vuz257, vuz258) -> new_quot3(vuz253, vuz254, vuz2550, vuz2560, vuz257, vuz258) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (21) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (22) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_signumReal10(vuz162, Succ(vuz1630), Succ(vuz1640), h) -> new_signumReal10(vuz162, vuz1630, vuz1640, h) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (23) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_signumReal10(vuz162, Succ(vuz1630), Succ(vuz1640), h) -> new_signumReal10(vuz162, vuz1630, vuz1640, h) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (24) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (25) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) 172.97/119.07 new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (26) DependencyGraphProof (EQUIVALENT) 172.97/119.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (27) 172.97/119.07 Complex Obligation (AND) 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (28) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (29) MRRProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 Strictly oriented dependency pairs: 172.97/119.07 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) 172.97/119.07 172.97/119.07 Strictly oriented rules of the TRS R: 172.97/119.07 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 172.97/119.07 Used ordering: Polynomial interpretation [POLO]: 172.97/119.07 172.97/119.07 POL(Succ(x_1)) = 1 + x_1 172.97/119.07 POL(Zero) = 2 172.97/119.07 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 172.97/119.07 POL(new_primMinusNatS0(x_1)) = 1 + x_1 172.97/119.07 POL(new_primMinusNatS1) = 2 172.97/119.07 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (30) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 P is empty. 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (31) PisEmptyProof (EQUIVALENT) 172.97/119.07 The TRS P is empty. Hence, there is no (P,Q,R) chain. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (32) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (33) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) 172.97/119.07 new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (34) QDPOrderProof (EQUIVALENT) 172.97/119.07 We use the reduction pair processor [LPAR04,JAR06]. 172.97/119.07 172.97/119.07 172.97/119.07 The following pairs can be oriented strictly and are deleted. 172.97/119.07 172.97/119.07 new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) 172.97/119.07 The remaining pairs can at least be oriented weakly. 172.97/119.07 Used ordering: Polynomial interpretation [POLO]: 172.97/119.07 172.97/119.07 POL(Succ(x_1)) = 1 + x_1 172.97/119.07 POL(Zero) = 1 172.97/119.07 POL(new_primDivNatS(x_1, x_2)) = x_1 172.97/119.07 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 172.97/119.07 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 172.97/119.07 POL(new_primMinusNatS2(x_1, x_2)) = x_1 172.97/119.07 172.97/119.07 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 172.97/119.07 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (35) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) 172.97/119.07 new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (36) DependencyGraphProof (EQUIVALENT) 172.97/119.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (37) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (38) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (39) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (40) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primMulNat(Succ(vuz3000), Succ(vuz4100)) -> new_primMulNat(vuz3000, Succ(vuz4100)) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (41) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_primMulNat(Succ(vuz3000), Succ(vuz4100)) -> new_primMulNat(vuz3000, Succ(vuz4100)) 172.97/119.07 The graph contains the following edges 1 > 1, 2 >= 2 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (42) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (43) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS(vuz1540, vuz1550) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (44) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_primMinusNatS(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS(vuz1540, vuz1550) 172.97/119.07 The graph contains the following edges 1 > 1, 2 > 2 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (45) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (46) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot4(vuz246, vuz247, Succ(vuz2480), Succ(vuz2490), vuz250, vuz251) -> new_quot4(vuz246, vuz247, vuz2480, vuz2490, vuz250, vuz251) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (47) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_quot4(vuz246, vuz247, Succ(vuz2480), Succ(vuz2490), vuz250, vuz251) -> new_quot4(vuz246, vuz247, vuz2480, vuz2490, vuz250, vuz251) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (48) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (49) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primPlusNat(Succ(vuz1700), Succ(vuz41000)) -> new_primPlusNat(vuz1700, vuz41000) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (50) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_primPlusNat(Succ(vuz1700), Succ(vuz41000)) -> new_primPlusNat(vuz1700, vuz41000) 172.97/119.07 The graph contains the following edges 1 > 1, 2 > 2 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (51) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (52) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_signumReal12(vuz134, Succ(vuz1350), Succ(vuz1360), h) -> new_signumReal12(vuz134, vuz1350, vuz1360, h) 172.97/119.07 172.97/119.07 R is empty. 172.97/119.07 Q is empty. 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (53) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_signumReal12(vuz134, Succ(vuz1350), Succ(vuz1360), h) -> new_signumReal12(vuz134, vuz1350, vuz1360, h) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (54) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (55) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.07 new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) 172.97/119.07 new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (56) DependencyGraphProof (EQUIVALENT) 172.97/119.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (57) 172.97/119.07 Complex Obligation (AND) 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (58) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) 172.97/119.07 new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (59) QDPOrderProof (EQUIVALENT) 172.97/119.07 We use the reduction pair processor [LPAR04,JAR06]. 172.97/119.07 172.97/119.07 172.97/119.07 The following pairs can be oriented strictly and are deleted. 172.97/119.07 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.07 The remaining pairs can at least be oriented weakly. 172.97/119.07 Used ordering: Polynomial interpretation [POLO]: 172.97/119.07 172.97/119.07 POL(Succ(x_1)) = 1 + x_1 172.97/119.07 POL(Zero) = 1 172.97/119.07 POL(new_primMinusNatS2(x_1, x_2)) = x_1 172.97/119.07 POL(new_primModNatS(x_1, x_2)) = x_1 172.97/119.07 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 172.97/119.07 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 172.97/119.07 172.97/119.07 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 172.97/119.07 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (60) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) 172.97/119.07 new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (61) DependencyGraphProof (EQUIVALENT) 172.97/119.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (62) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (63) QDPSizeChangeProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 From the DPs we obtained the following set of size-change graphs: 172.97/119.07 *new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (64) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (65) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (66) MRRProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 172.97/119.07 Strictly oriented dependency pairs: 172.97/119.07 172.97/119.07 new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) 172.97/119.07 172.97/119.07 Strictly oriented rules of the TRS R: 172.97/119.07 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 172.97/119.07 Used ordering: Polynomial interpretation [POLO]: 172.97/119.07 172.97/119.07 POL(Succ(x_1)) = 1 + x_1 172.97/119.07 POL(Zero) = 2 172.97/119.07 POL(new_primMinusNatS0(x_1)) = 1 + x_1 172.97/119.07 POL(new_primMinusNatS1) = 2 172.97/119.07 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 172.97/119.07 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (67) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 P is empty. 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (68) PisEmptyProof (EQUIVALENT) 172.97/119.07 The TRS P is empty. Hence, there is no (P,Q,R) chain. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (69) 172.97/119.07 YES 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (70) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) 172.97/119.07 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, new_fromInt0, vuz158) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.07 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.07 new_primEqNat0(Zero, Zero) -> True 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.07 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_error -> error([]) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.07 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.07 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.07 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.07 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.07 new_fromInt0 -> Integer(Pos(Zero)) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.07 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.07 new_primEqNat0(Zero, Zero) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.07 new_primModNatS01(x0, x1) 172.97/119.07 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primEqNat0(Zero, Succ(x0)) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.07 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.07 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primModNatS1(Zero, x0) 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.07 new_error 172.97/119.07 new_primModNatS1(Succ(Zero), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 new_esEs0(x0, Integer(x1)) 172.97/119.07 new_primEqNat0(Succ(x0), Zero) 172.97/119.07 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.07 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.07 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.07 new_fromInt0 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.07 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.07 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.07 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.07 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.07 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.07 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.07 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.07 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (71) TransformationProof (EQUIVALENT) 172.97/119.07 By rewriting [LPAR04] the rule new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, new_fromInt0, vuz158) at position [3] we obtained the following new rules [LPAR04]: 172.97/119.07 172.97/119.07 (new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158),new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158)) 172.97/119.07 172.97/119.07 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (72) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) 172.97/119.07 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.07 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.07 new_primEqNat0(Zero, Zero) -> True 172.97/119.07 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.07 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.07 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.07 new_error -> error([]) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.07 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.07 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.07 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.07 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.07 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.07 new_fromInt0 -> Integer(Pos(Zero)) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primMinusNatS1 -> Zero 172.97/119.07 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.07 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.07 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.07 172.97/119.07 The set Q consists of the following terms: 172.97/119.07 172.97/119.07 new_primMinusNatS0(x0) 172.97/119.07 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.07 new_primEqNat0(Zero, Zero) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.07 new_primModNatS01(x0, x1) 172.97/119.07 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.07 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.07 new_primMinusNatS1 172.97/119.07 new_primEqNat0(Zero, Succ(x0)) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.07 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.07 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.07 new_primMinusNatS2(Zero, Zero) 172.97/119.07 new_primModNatS1(Zero, x0) 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.07 new_error 172.97/119.07 new_primModNatS1(Succ(Zero), Zero) 172.97/119.07 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.07 new_esEs0(x0, Integer(x1)) 172.97/119.07 new_primEqNat0(Succ(x0), Zero) 172.97/119.07 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.07 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.07 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.07 new_fromInt0 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.07 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.07 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.07 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.07 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.07 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.07 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.07 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.07 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.07 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.07 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.07 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.07 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.07 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.07 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.07 172.97/119.07 We have to consider all minimal (P,Q,R)-chains. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (73) UsableRulesProof (EQUIVALENT) 172.97/119.07 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. 172.97/119.07 ---------------------------------------- 172.97/119.07 172.97/119.07 (74) 172.97/119.07 Obligation: 172.97/119.07 Q DP problem: 172.97/119.07 The TRS P consists of the following rules: 172.97/119.07 172.97/119.07 new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) 172.97/119.07 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.07 172.97/119.07 The TRS R consists of the following rules: 172.97/119.07 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.07 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.07 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.07 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.07 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.07 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.07 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.07 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqNat0(Zero, Zero) -> True 172.97/119.08 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.08 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.08 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.08 new_error 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) 172.97/119.08 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.08 new_fromInt0 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.08 172.97/119.08 We have to consider all minimal (P,Q,R)-chains. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (75) QReductionProof (EQUIVALENT) 172.97/119.08 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 172.97/119.08 172.97/119.08 new_fromInt0 172.97/119.08 172.97/119.08 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (76) 172.97/119.08 Obligation: 172.97/119.08 Q DP problem: 172.97/119.08 The TRS P consists of the following rules: 172.97/119.08 172.97/119.08 new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) 172.97/119.08 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.08 172.97/119.08 The TRS R consists of the following rules: 172.97/119.08 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqNat0(Zero, Zero) -> True 172.97/119.08 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.08 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.08 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.08 new_error 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) 172.97/119.08 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.08 172.97/119.08 We have to consider all minimal (P,Q,R)-chains. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (77) TransformationProof (EQUIVALENT) 172.97/119.08 By instantiating [LPAR04] the rule new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) we obtained the following new rules [LPAR04]: 172.97/119.08 172.97/119.08 (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2))) 172.97/119.08 172.97/119.08 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (78) 172.97/119.08 Obligation: 172.97/119.08 Q DP problem: 172.97/119.08 The TRS P consists of the following rules: 172.97/119.08 172.97/119.08 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.08 new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) 172.97/119.08 172.97/119.08 The TRS R consists of the following rules: 172.97/119.08 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqNat0(Zero, Zero) -> True 172.97/119.08 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.08 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.08 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.08 new_error 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) 172.97/119.08 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.08 172.97/119.08 We have to consider all minimal (P,Q,R)-chains. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (79) TransformationProof (EQUIVALENT) 172.97/119.08 By rewriting [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: 172.97/119.08 172.97/119.08 (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2))) 172.97/119.08 172.97/119.08 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (80) 172.97/119.08 Obligation: 172.97/119.08 Q DP problem: 172.97/119.08 The TRS P consists of the following rules: 172.97/119.08 172.97/119.08 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.08 new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) 172.97/119.08 172.97/119.08 The TRS R consists of the following rules: 172.97/119.08 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqNat0(Zero, Zero) -> True 172.97/119.08 new_primEqNat0(Succ(vuz16000), Zero) -> False 172.97/119.08 new_primEqNat0(Zero, Succ(vuz47000)) -> False 172.97/119.08 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.08 new_error 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) 172.97/119.08 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.08 172.97/119.08 We have to consider all minimal (P,Q,R)-chains. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (81) UsableRulesProof (EQUIVALENT) 172.97/119.08 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. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (82) 172.97/119.08 Obligation: 172.97/119.08 Q DP problem: 172.97/119.08 The TRS P consists of the following rules: 172.97/119.08 172.97/119.08 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.08 new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) 172.97/119.08 172.97/119.08 The TRS R consists of the following rules: 172.97/119.08 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 172.97/119.08 new_error 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) 172.97/119.08 new_primMinusNatS2(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Zero) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Zero)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 new_primMinusNatS2(Succ(x0), Zero) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Succ(x2)) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Zero)) 172.97/119.08 new_primModNatS02(x0, x1, Zero, Zero) 172.97/119.08 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Zero)) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Zero)) 172.97/119.08 new_primRemInt(Pos(x0), Neg(Succ(x1))) 172.97/119.08 new_primRemInt(Neg(x0), Pos(Succ(x1))) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 172.97/119.08 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 172.97/119.08 172.97/119.08 We have to consider all minimal (P,Q,R)-chains. 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (83) QReductionProof (EQUIVALENT) 172.97/119.08 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 172.97/119.08 172.97/119.08 new_primEqNat0(Zero, Zero) 172.97/119.08 new_primEqNat0(Zero, Succ(x0)) 172.97/119.08 new_esEs0(x0, Integer(x1)) 172.97/119.08 new_primEqNat0(Succ(x0), Zero) 172.97/119.08 new_primEqNat0(Succ(x0), Succ(x1)) 172.97/119.08 172.97/119.08 172.97/119.08 ---------------------------------------- 172.97/119.08 172.97/119.08 (84) 172.97/119.08 Obligation: 172.97/119.08 Q DP problem: 172.97/119.08 The TRS P consists of the following rules: 172.97/119.08 172.97/119.08 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 172.97/119.08 new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) 172.97/119.08 172.97/119.08 The TRS R consists of the following rules: 172.97/119.08 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 172.97/119.08 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 172.97/119.08 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 172.97/119.08 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 172.97/119.08 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 172.97/119.08 new_error -> error([]) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 172.97/119.08 new_primModNatS1(Zero, vuz11600) -> Zero 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 172.97/119.08 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 172.97/119.08 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 172.97/119.08 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 172.97/119.08 new_primMinusNatS2(Zero, Zero) -> Zero 172.97/119.08 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 172.97/119.08 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 172.97/119.08 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 172.97/119.08 new_primMinusNatS1 -> Zero 172.97/119.08 172.97/119.08 The set Q consists of the following terms: 172.97/119.08 172.97/119.08 new_primMinusNatS0(x0) 172.97/119.08 new_primRemInt(Pos(x0), Pos(Succ(x1))) 172.97/119.08 new_primEqInt(Pos(Zero), Neg(Zero)) 172.97/119.08 new_primEqInt(Neg(Zero), Pos(Zero)) 172.97/119.08 new_primModNatS01(x0, x1) 172.97/119.08 new_primModNatS1(Succ(Succ(x0)), Zero) 172.97/119.08 new_primMinusNatS2(Succ(x0), Succ(x1)) 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Zero)) 172.97/119.08 new_primMinusNatS1 172.97/119.08 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 172.97/119.08 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 172.97/119.08 new_primModNatS1(Succ(Zero), Succ(x0)) 172.97/119.08 new_primRemInt(Neg(x0), Neg(Succ(x1))) 172.97/119.08 new_primMinusNatS2(Zero, Zero) 172.97/119.08 new_primModNatS1(Zero, x0) 172.97/119.08 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (85) InductionCalculusProof (EQUIVALENT) 173.15/119.09 Note that final constraints are written in bold face. 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 For Pair new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) the following chains were created: 173.15/119.09 *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) -> new_quot2(x6, new_primEqInt(new_primRemInt(x7, x8), Pos(Zero)), x8, new_primRemInt(x7, x8)) which results in the following constraint: 173.15/119.09 173.15/119.09 (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (2) (new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 For Pair new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) the following chains were created: 173.15/119.09 *We consider the chain new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10) -> new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11)), new_quot2(x12, False, x13, x14) -> new_quot1(x12, x13, x14, Integer(Pos(Zero)), x13) which results in the following constraint: 173.15/119.09 173.15/119.09 (1) (new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))=new_quot2(x12, False, x13, x14) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (2) (new_primRemInt(x10, x11)=x18 & Pos(Zero)=x19 & new_primEqInt(x18, x19)=False ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x18, x19)=False which results in the following new constraints: 173.15/119.09 173.15/119.09 (3) (False=False & new_primRemInt(x10, x11)=Pos(Succ(x20)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 (4) (False=False & new_primRemInt(x10, x11)=Neg(Succ(x22)) & Pos(Zero)=Pos(x21) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (3) using rules (I), (II) which results in the following new constraint: 173.15/119.09 173.15/119.09 (5) (new_primRemInt(x10, x11)=Pos(Succ(x20)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (6) (new_primRemInt(x10, x11)=Neg(Succ(x22)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Pos(Succ(x20)) which results in the following new constraints: 173.15/119.09 173.15/119.09 (7) (Pos(new_primModNatS1(x24, x23))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) 173.15/119.09 173.15/119.09 (8) (Pos(new_primModNatS1(x26, x25))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) 173.15/119.09 173.15/119.09 (9) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x27), Neg(Zero), Integer(Pos(Zero)), Neg(x27))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x27), Neg(Zero)))) 173.15/119.09 173.15/119.09 (10) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x30), Pos(Zero), Integer(Pos(Zero)), Pos(x30))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x30), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x30), Pos(Zero)))) 173.15/119.09 173.15/119.09 (11) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x33), Neg(Zero), Integer(Pos(Zero)), Pos(x33))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x33), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x33), Neg(Zero)))) 173.15/119.09 173.15/119.09 (12) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x34), Pos(Zero), Integer(Pos(Zero)), Neg(x34))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x34), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x34), Pos(Zero)))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (7) using rules (I), (II) which results in the following new constraint: 173.15/119.09 173.15/119.09 (13) (new_primModNatS1(x24, x23)=Succ(x20) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (8) using rules (I), (II) which results in the following new constraint: 173.15/119.09 173.15/119.09 (14) (new_primModNatS1(x26, x25)=Succ(x20) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x23)=Succ(x20) which results in the following new constraints: 173.15/119.09 173.15/119.09 (15) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) 173.15/119.09 173.15/119.09 (16) (new_primModNatS1(new_primMinusNatS0(x37), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 (17) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 (18) (new_primModNatS02(x39, x38, x39, x38)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38))), Integer(Pos(Zero)), Pos(Succ(Succ(x39))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))), Pos(Zero)), Neg(Succ(Succ(x38))), new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (19) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (20) (new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (21) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (22) (new_quot1(x9, Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45))), Integer(Pos(Zero)), Pos(Succ(Succ(x44))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))), Pos(Zero)), Neg(Succ(Succ(x45))), new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x26, x25)=Succ(x20) which results in the following new constraints: 173.15/119.09 173.15/119.09 (23) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) 173.15/119.09 173.15/119.09 (24) (new_primModNatS1(new_primMinusNatS0(x48), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 (25) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 (26) (new_primModNatS02(x50, x49, x50, x49)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x50))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49)))), Pos(Zero)), Pos(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (27) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (28) (new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (29) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (30) (new_quot1(x9, Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56))), Integer(Pos(Zero)), Pos(Succ(Succ(x55))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))), Pos(Zero)), Pos(Succ(Succ(x56))), new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Neg(Succ(x22)) which results in the following new constraints: 173.15/119.09 173.15/119.09 (31) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x61), Neg(Zero), Integer(Pos(Zero)), Neg(x61))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x61), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x61), Neg(Zero)))) 173.15/119.09 173.15/119.09 (32) (Neg(new_primModNatS1(x63, x62))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x63), Pos(Succ(x62)), Integer(Pos(Zero)), Neg(x63))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x63), Pos(Succ(x62))), Pos(Zero)), Pos(Succ(x62)), new_primRemInt(Neg(x63), Pos(Succ(x62))))) 173.15/119.09 173.15/119.09 (33) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x64), Pos(Zero), Integer(Pos(Zero)), Pos(x64))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x64), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x64), Pos(Zero)))) 173.15/119.09 173.15/119.09 (34) (Neg(new_primModNatS1(x66, x65))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x66), Neg(Succ(x65)), Integer(Pos(Zero)), Neg(x66))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x66), Neg(Succ(x65))), Pos(Zero)), Neg(Succ(x65)), new_primRemInt(Neg(x66), Neg(Succ(x65))))) 173.15/119.09 173.15/119.09 (35) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x67), Neg(Zero), Integer(Pos(Zero)), Pos(x67))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x67), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x67), Neg(Zero)))) 173.15/119.09 173.15/119.09 (36) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x68), Pos(Zero), Integer(Pos(Zero)), Neg(x68))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x68), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x68), Pos(Zero)))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: 173.15/119.09 173.15/119.09 (37) (new_primModNatS1(x63, x62)=Succ(x22) ==> new_quot1(x9, Neg(x63), Pos(Succ(x62)), Integer(Pos(Zero)), Neg(x63))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x63), Pos(Succ(x62))), Pos(Zero)), Pos(Succ(x62)), new_primRemInt(Neg(x63), Pos(Succ(x62))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: 173.15/119.09 173.15/119.09 (38) (new_primModNatS1(x66, x65)=Succ(x22) ==> new_quot1(x9, Neg(x66), Neg(Succ(x65)), Integer(Pos(Zero)), Neg(x66))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x66), Neg(Succ(x65))), Pos(Zero)), Neg(Succ(x65)), new_primRemInt(Neg(x66), Neg(Succ(x65))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x63, x62)=Succ(x22) which results in the following new constraints: 173.15/119.09 173.15/119.09 (39) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) 173.15/119.09 173.15/119.09 (40) (new_primModNatS1(new_primMinusNatS0(x71), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 (41) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 (42) (new_primModNatS02(x73, x72, x73, x72)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72))), Integer(Pos(Zero)), Neg(Succ(Succ(x73))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72)))), Pos(Zero)), Pos(Succ(Succ(x72))), new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (43) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (44) (new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (45) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (46) (new_quot1(x9, Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79))), Integer(Pos(Zero)), Neg(Succ(Succ(x78))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(x79))), new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x66, x65)=Succ(x22) which results in the following new constraints: 173.15/119.09 173.15/119.09 (47) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) 173.15/119.09 173.15/119.09 (48) (new_primModNatS1(new_primMinusNatS0(x82), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 (49) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 (50) (new_primModNatS02(x84, x83, x84, x83)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))), Integer(Pos(Zero)), Neg(Succ(Succ(x84))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83)))), Pos(Zero)), Neg(Succ(Succ(x83))), new_primRemInt(Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: 173.15/119.09 173.15/119.09 (51) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (52) (new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (53) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: 173.15/119.09 173.15/119.09 (54) (new_quot1(x9, Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))), Integer(Pos(Zero)), Neg(Succ(Succ(x89))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))), Pos(Zero)), Neg(Succ(Succ(x90))), new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 To summarize, we get the following constraints P__>=_ for the following pairs. 173.15/119.09 173.15/119.09 *new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 173.15/119.09 *(new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 *new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45))), Integer(Pos(Zero)), Pos(Succ(Succ(x44))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))), Pos(Zero)), Neg(Succ(Succ(x45))), new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56))), Integer(Pos(Zero)), Pos(Succ(Succ(x55))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))), Pos(Zero)), Pos(Succ(Succ(x56))), new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79))), Integer(Pos(Zero)), Neg(Succ(Succ(x78))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(x79))), new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) 173.15/119.09 173.15/119.09 173.15/119.09 *(new_quot1(x9, Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))), Integer(Pos(Zero)), Neg(Succ(Succ(x89))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))), Pos(Zero)), Neg(Succ(Succ(x90))), new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 173.15/119.09 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. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (86) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.09 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.09 new_error -> error([]) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.09 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.09 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.09 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.09 new_primMinusNatS1 -> Zero 173.15/119.09 173.15/119.09 The set Q consists of the following terms: 173.15/119.09 173.15/119.09 new_primMinusNatS0(x0) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.09 new_primModNatS01(x0, x1) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.09 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.09 new_primMinusNatS1 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.09 new_primMinusNatS2(Zero, Zero) 173.15/119.09 new_primModNatS1(Zero, x0) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (87) TransformationProof (EQUIVALENT) 173.15/119.09 By narrowing [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.09 173.15/119.09 (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1))))) 173.15/119.09 (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1))))) 173.15/119.09 (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) 173.15/119.09 (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1))))) 173.15/119.09 (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) 173.15/119.09 (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1))))) 173.15/119.09 (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) 173.15/119.09 (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) 173.15/119.09 173.15/119.09 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (88) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.09 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.09 new_error -> error([]) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.09 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.09 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.09 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.09 new_primMinusNatS1 -> Zero 173.15/119.09 173.15/119.09 The set Q consists of the following terms: 173.15/119.09 173.15/119.09 new_primMinusNatS0(x0) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.09 new_primModNatS01(x0, x1) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.09 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.09 new_primMinusNatS1 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.09 new_primMinusNatS2(Zero, Zero) 173.15/119.09 new_primModNatS1(Zero, x0) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (89) TransformationProof (EQUIVALENT) 173.15/119.09 By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: 173.15/119.09 173.15/119.09 (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) 173.15/119.09 173.15/119.09 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (90) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.09 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.09 new_error -> error([]) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.09 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.09 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.09 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.09 new_primMinusNatS1 -> Zero 173.15/119.09 173.15/119.09 The set Q consists of the following terms: 173.15/119.09 173.15/119.09 new_primMinusNatS0(x0) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.09 new_primModNatS01(x0, x1) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.09 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.09 new_primMinusNatS1 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.09 new_primMinusNatS2(Zero, Zero) 173.15/119.09 new_primModNatS1(Zero, x0) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (91) UsableRulesProof (EQUIVALENT) 173.15/119.09 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. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (92) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.09 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.09 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.09 new_primMinusNatS1 -> Zero 173.15/119.09 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.09 new_error -> error([]) 173.15/119.09 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 173.15/119.09 The set Q consists of the following terms: 173.15/119.09 173.15/119.09 new_primMinusNatS0(x0) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.09 new_primModNatS01(x0, x1) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.09 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.09 new_primMinusNatS1 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.09 new_primMinusNatS2(Zero, Zero) 173.15/119.09 new_primModNatS1(Zero, x0) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (93) TransformationProof (EQUIVALENT) 173.15/119.09 By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: 173.15/119.09 173.15/119.09 (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) 173.15/119.09 173.15/119.09 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (94) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.09 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.09 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.09 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.09 new_primMinusNatS1 -> Zero 173.15/119.09 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.09 new_error -> error([]) 173.15/119.09 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.09 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.09 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.15/119.09 173.15/119.09 The set Q consists of the following terms: 173.15/119.09 173.15/119.09 new_primMinusNatS0(x0) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.09 new_primModNatS01(x0, x1) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.09 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.09 new_primMinusNatS1 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.09 new_primMinusNatS2(Zero, Zero) 173.15/119.09 new_primModNatS1(Zero, x0) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.09 new_error 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) 173.15/119.09 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.09 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.09 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.09 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.09 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.09 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.09 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.09 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.09 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.09 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.09 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.09 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.09 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.09 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.09 173.15/119.09 We have to consider all minimal (P,Q,R)-chains. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (95) UsableRulesProof (EQUIVALENT) 173.15/119.09 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. 173.15/119.09 ---------------------------------------- 173.15/119.09 173.15/119.09 (96) 173.15/119.09 Obligation: 173.15/119.09 Q DP problem: 173.15/119.09 The TRS P consists of the following rules: 173.15/119.09 173.15/119.09 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.09 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.09 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.09 173.15/119.09 The TRS R consists of the following rules: 173.15/119.09 173.15/119.09 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.09 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.09 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.09 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.09 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.09 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.09 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (97) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (98) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (99) DependencyGraphProof (EQUIVALENT) 173.15/119.10 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (100) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (101) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (102) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (103) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (104) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (105) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (106) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (107) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (108) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (109) DependencyGraphProof (EQUIVALENT) 173.15/119.10 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (110) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (111) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (112) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (113) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (114) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (115) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (116) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (117) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (118) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (119) DependencyGraphProof (EQUIVALENT) 173.15/119.10 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (120) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (121) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (122) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (123) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (124) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (125) DependencyGraphProof (EQUIVALENT) 173.15/119.10 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (126) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 new_error -> error([]) 173.15/119.10 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (127) UsableRulesProof (EQUIVALENT) 173.15/119.10 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. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (128) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_error 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (129) QReductionProof (EQUIVALENT) 173.15/119.10 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.15/119.10 173.15/119.10 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.15/119.10 new_error 173.15/119.10 new_primRemInt(Pos(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Zero)) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Zero)) 173.15/119.10 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.15/119.10 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (130) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (131) TransformationProof (EQUIVALENT) 173.15/119.10 By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.10 (new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) 173.15/119.10 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.10 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.10 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (132) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.10 new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (133) DependencyGraphProof (EQUIVALENT) 173.15/119.10 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (134) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (135) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (136) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (137) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (138) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.10 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.10 173.15/119.10 The TRS R consists of the following rules: 173.15/119.10 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.10 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.10 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.10 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.10 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.10 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.10 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.10 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.10 new_primMinusNatS1 -> Zero 173.15/119.10 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.10 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.10 173.15/119.10 The set Q consists of the following terms: 173.15/119.10 173.15/119.10 new_primMinusNatS0(x0) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.10 new_primModNatS01(x0, x1) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.10 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.10 new_primMinusNatS1 173.15/119.10 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.10 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.10 new_primMinusNatS2(Zero, Zero) 173.15/119.10 new_primModNatS1(Zero, x0) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.10 new_primModNatS1(Succ(Zero), Zero) 173.15/119.10 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.10 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.10 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.10 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.10 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.10 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.10 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.10 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.10 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.10 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.10 173.15/119.10 We have to consider all minimal (P,Q,R)-chains. 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (139) TransformationProof (EQUIVALENT) 173.15/119.10 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.10 173.15/119.10 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.10 173.15/119.10 173.15/119.10 ---------------------------------------- 173.15/119.10 173.15/119.10 (140) 173.15/119.10 Obligation: 173.15/119.10 Q DP problem: 173.15/119.10 The TRS P consists of the following rules: 173.15/119.10 173.15/119.10 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.10 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.10 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (141) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (142) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (143) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (144) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (145) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (146) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (147) DependencyGraphProof (EQUIVALENT) 173.15/119.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (148) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (149) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (150) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (151) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (152) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (153) TransformationProof (EQUIVALENT) 173.15/119.11 By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.11 (new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (154) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (155) DependencyGraphProof (EQUIVALENT) 173.15/119.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (156) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (157) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (158) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (159) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (160) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (161) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (162) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (163) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (164) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (165) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (166) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (167) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (168) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (169) DependencyGraphProof (EQUIVALENT) 173.15/119.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (170) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (171) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (172) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (173) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (174) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (175) TransformationProof (EQUIVALENT) 173.15/119.11 By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.11 (new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) 173.15/119.11 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.11 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (176) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (177) DependencyGraphProof (EQUIVALENT) 173.15/119.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (178) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (179) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (180) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (181) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (182) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (183) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (184) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.11 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.11 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.11 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.11 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.11 new_primMinusNatS1 -> Zero 173.15/119.11 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.11 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.11 173.15/119.11 The set Q consists of the following terms: 173.15/119.11 173.15/119.11 new_primMinusNatS0(x0) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.11 new_primModNatS01(x0, x1) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.11 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.11 new_primMinusNatS1 173.15/119.11 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.11 new_primMinusNatS2(Zero, Zero) 173.15/119.11 new_primModNatS1(Zero, x0) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) 173.15/119.11 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.11 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.11 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.11 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.11 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.11 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.11 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.11 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.11 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.11 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.11 173.15/119.11 We have to consider all minimal (P,Q,R)-chains. 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (185) TransformationProof (EQUIVALENT) 173.15/119.11 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.11 173.15/119.11 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) 173.15/119.11 173.15/119.11 173.15/119.11 ---------------------------------------- 173.15/119.11 173.15/119.11 (186) 173.15/119.11 Obligation: 173.15/119.11 Q DP problem: 173.15/119.11 The TRS P consists of the following rules: 173.15/119.11 173.15/119.11 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.11 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.11 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.11 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.11 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.11 173.15/119.11 The TRS R consists of the following rules: 173.15/119.11 173.15/119.11 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.11 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.11 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.11 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.11 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.11 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (187) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (188) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (189) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (190) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (191) DependencyGraphProof (EQUIVALENT) 173.15/119.12 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (192) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (193) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (194) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (195) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (196) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (197) TransformationProof (EQUIVALENT) 173.15/119.12 By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.12 (new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (198) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (199) DependencyGraphProof (EQUIVALENT) 173.15/119.12 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (200) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (201) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (202) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (203) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (204) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (205) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (206) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (207) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (208) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (209) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (210) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (211) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (212) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (213) DependencyGraphProof (EQUIVALENT) 173.15/119.12 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (214) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (215) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (216) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (217) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (218) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (219) TransformationProof (EQUIVALENT) 173.15/119.12 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (220) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (221) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (222) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (223) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (224) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (225) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (226) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (227) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (228) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.12 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.12 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.12 173.15/119.12 The TRS R consists of the following rules: 173.15/119.12 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.12 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.12 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.12 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.12 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.12 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.12 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.12 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.12 new_primMinusNatS1 -> Zero 173.15/119.12 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.12 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.12 173.15/119.12 The set Q consists of the following terms: 173.15/119.12 173.15/119.12 new_primMinusNatS0(x0) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.12 new_primModNatS01(x0, x1) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.12 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.12 new_primMinusNatS1 173.15/119.12 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.12 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.12 new_primMinusNatS2(Zero, Zero) 173.15/119.12 new_primModNatS1(Zero, x0) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.12 new_primModNatS1(Succ(Zero), Zero) 173.15/119.12 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.12 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.12 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.12 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.12 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.12 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.12 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.12 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.12 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.12 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.12 173.15/119.12 We have to consider all minimal (P,Q,R)-chains. 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (229) TransformationProof (EQUIVALENT) 173.15/119.12 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.12 173.15/119.12 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.12 173.15/119.12 173.15/119.12 ---------------------------------------- 173.15/119.12 173.15/119.12 (230) 173.15/119.12 Obligation: 173.15/119.12 Q DP problem: 173.15/119.12 The TRS P consists of the following rules: 173.15/119.12 173.15/119.12 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.12 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.12 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (231) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (232) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (233) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (234) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (235) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (236) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (237) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (238) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (239) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (240) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (241) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (242) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (243) DependencyGraphProof (EQUIVALENT) 173.15/119.13 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (244) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (245) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (246) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (247) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (248) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (249) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (250) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (251) TransformationProof (EQUIVALENT) 173.15/119.13 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (252) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (253) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (254) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (255) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (256) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (257) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (258) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (259) DependencyGraphProof (EQUIVALENT) 173.15/119.13 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (260) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (261) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (262) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (263) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (264) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (265) TransformationProof (EQUIVALENT) 173.15/119.13 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (266) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (267) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (268) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (269) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (270) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.13 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.13 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.13 173.15/119.13 The set Q consists of the following terms: 173.15/119.13 173.15/119.13 new_primMinusNatS0(x0) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.13 new_primModNatS01(x0, x1) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.13 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.13 new_primMinusNatS1 173.15/119.13 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.13 new_primMinusNatS2(Zero, Zero) 173.15/119.13 new_primModNatS1(Zero, x0) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) 173.15/119.13 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.13 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.13 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.13 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.13 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.13 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.13 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.13 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.13 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.13 173.15/119.13 We have to consider all minimal (P,Q,R)-chains. 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (271) TransformationProof (EQUIVALENT) 173.15/119.13 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.13 173.15/119.13 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.13 173.15/119.13 173.15/119.13 ---------------------------------------- 173.15/119.13 173.15/119.13 (272) 173.15/119.13 Obligation: 173.15/119.13 Q DP problem: 173.15/119.13 The TRS P consists of the following rules: 173.15/119.13 173.15/119.13 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.13 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.13 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.13 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.13 173.15/119.13 The TRS R consists of the following rules: 173.15/119.13 173.15/119.13 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.13 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.13 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.13 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.13 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.13 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.13 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.13 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.13 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.13 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.13 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (273) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (274) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (275) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (276) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (277) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (278) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (279) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (280) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (281) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (282) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (283) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (284) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (285) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (286) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (287) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (288) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (289) DependencyGraphProof (EQUIVALENT) 173.15/119.14 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (290) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (291) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (292) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (293) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (294) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (295) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (296) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (297) TransformationProof (EQUIVALENT) 173.15/119.14 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (298) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (299) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (300) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (301) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (302) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (303) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (304) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (305) DependencyGraphProof (EQUIVALENT) 173.15/119.14 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (306) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (307) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (308) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (309) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (310) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (311) TransformationProof (EQUIVALENT) 173.15/119.14 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.14 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) 173.15/119.14 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.14 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (312) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.14 173.15/119.14 The TRS R consists of the following rules: 173.15/119.14 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.14 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.14 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.14 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.14 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.14 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.14 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.14 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.14 new_primMinusNatS1 -> Zero 173.15/119.14 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.14 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.14 173.15/119.14 The set Q consists of the following terms: 173.15/119.14 173.15/119.14 new_primMinusNatS0(x0) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.14 new_primModNatS01(x0, x1) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.14 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.14 new_primMinusNatS1 173.15/119.14 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.14 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.14 new_primMinusNatS2(Zero, Zero) 173.15/119.14 new_primModNatS1(Zero, x0) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.14 new_primModNatS1(Succ(Zero), Zero) 173.15/119.14 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.14 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.14 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.14 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.14 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.14 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.14 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.14 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.14 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.14 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.14 173.15/119.14 We have to consider all minimal (P,Q,R)-chains. 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (313) TransformationProof (EQUIVALENT) 173.15/119.14 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.14 173.15/119.14 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.14 173.15/119.14 173.15/119.14 ---------------------------------------- 173.15/119.14 173.15/119.14 (314) 173.15/119.14 Obligation: 173.15/119.14 Q DP problem: 173.15/119.14 The TRS P consists of the following rules: 173.15/119.14 173.15/119.14 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.14 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.14 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.14 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (315) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (316) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (317) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (318) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (319) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (320) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (321) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (322) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (323) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (324) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (325) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (326) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (327) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (328) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (329) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (330) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (331) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (332) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (333) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (334) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (335) DependencyGraphProof (EQUIVALENT) 173.15/119.15 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (336) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (337) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (338) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (339) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (340) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (341) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (342) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (343) TransformationProof (EQUIVALENT) 173.15/119.15 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (344) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (345) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (346) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.15/119.15 173.15/119.15 The TRS R consists of the following rules: 173.15/119.15 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.15/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.15/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.15/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.15/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.15/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.15/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.15/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.15/119.15 new_primMinusNatS1 -> Zero 173.15/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.15/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.15/119.15 173.15/119.15 The set Q consists of the following terms: 173.15/119.15 173.15/119.15 new_primMinusNatS0(x0) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.15/119.15 new_primModNatS01(x0, x1) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.15/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.15/119.15 new_primMinusNatS1 173.15/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.15/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.15/119.15 new_primMinusNatS2(Zero, Zero) 173.15/119.15 new_primModNatS1(Zero, x0) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.15/119.15 new_primModNatS1(Succ(Zero), Zero) 173.15/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.15/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.15/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.15/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.15/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.15/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.15/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.15/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.15/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.15/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.15/119.15 173.15/119.15 We have to consider all minimal (P,Q,R)-chains. 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (347) TransformationProof (EQUIVALENT) 173.15/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.15/119.15 173.15/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.15/119.15 173.15/119.15 173.15/119.15 ---------------------------------------- 173.15/119.15 173.15/119.15 (348) 173.15/119.15 Obligation: 173.15/119.15 Q DP problem: 173.15/119.15 The TRS P consists of the following rules: 173.15/119.15 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.15/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.15/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.15 173.32/119.15 The TRS R consists of the following rules: 173.32/119.15 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.15 new_primMinusNatS1 -> Zero 173.32/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.15 173.32/119.15 The set Q consists of the following terms: 173.32/119.15 173.32/119.15 new_primMinusNatS0(x0) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.15 new_primModNatS01(x0, x1) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.15 new_primMinusNatS1 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.15 new_primMinusNatS2(Zero, Zero) 173.32/119.15 new_primModNatS1(Zero, x0) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) 173.32/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.15 173.32/119.15 We have to consider all minimal (P,Q,R)-chains. 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (349) TransformationProof (EQUIVALENT) 173.32/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.15 173.32/119.15 (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.32/119.15 173.32/119.15 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (350) 173.32/119.15 Obligation: 173.32/119.15 Q DP problem: 173.32/119.15 The TRS P consists of the following rules: 173.32/119.15 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.15 173.32/119.15 The TRS R consists of the following rules: 173.32/119.15 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.15 new_primMinusNatS1 -> Zero 173.32/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.15 173.32/119.15 The set Q consists of the following terms: 173.32/119.15 173.32/119.15 new_primMinusNatS0(x0) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.15 new_primModNatS01(x0, x1) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.15 new_primMinusNatS1 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.15 new_primMinusNatS2(Zero, Zero) 173.32/119.15 new_primModNatS1(Zero, x0) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) 173.32/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.15 173.32/119.15 We have to consider all minimal (P,Q,R)-chains. 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (351) DependencyGraphProof (EQUIVALENT) 173.32/119.15 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (352) 173.32/119.15 Obligation: 173.32/119.15 Q DP problem: 173.32/119.15 The TRS P consists of the following rules: 173.32/119.15 173.32/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.15 173.32/119.15 The TRS R consists of the following rules: 173.32/119.15 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.15 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.15 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.15 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.15 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.15 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.15 new_primMinusNatS1 -> Zero 173.32/119.15 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.15 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.15 173.32/119.15 The set Q consists of the following terms: 173.32/119.15 173.32/119.15 new_primMinusNatS0(x0) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.15 new_primModNatS01(x0, x1) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.15 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.15 new_primMinusNatS1 173.32/119.15 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.15 new_primMinusNatS2(Zero, Zero) 173.32/119.15 new_primModNatS1(Zero, x0) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) 173.32/119.15 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.15 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.15 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.15 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.15 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.15 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.15 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.15 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.15 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.15 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.15 173.32/119.15 We have to consider all minimal (P,Q,R)-chains. 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (353) TransformationProof (EQUIVALENT) 173.32/119.15 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.15 173.32/119.15 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.32/119.15 173.32/119.15 173.32/119.15 ---------------------------------------- 173.32/119.15 173.32/119.15 (354) 173.32/119.15 Obligation: 173.32/119.15 Q DP problem: 173.32/119.15 The TRS P consists of the following rules: 173.32/119.15 173.32/119.15 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.32/119.15 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.15 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.32/119.15 173.32/119.15 The TRS R consists of the following rules: 173.32/119.15 173.32/119.15 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.15 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.15 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.15 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.15 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (355) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (356) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (357) TransformationProof (EQUIVALENT) 173.32/119.16 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (358) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (359) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (360) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (361) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (362) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (363) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (364) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (365) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (366) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (367) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (368) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (369) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (370) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (371) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (372) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (373) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (374) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (375) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (376) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (377) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (378) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (379) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (380) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (381) DependencyGraphProof (EQUIVALENT) 173.32/119.16 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (382) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (383) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (384) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (385) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (386) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (387) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (388) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (389) TransformationProof (EQUIVALENT) 173.32/119.16 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (390) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (391) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.16 173.32/119.16 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.32/119.16 173.32/119.16 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (392) 173.32/119.16 Obligation: 173.32/119.16 Q DP problem: 173.32/119.16 The TRS P consists of the following rules: 173.32/119.16 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.16 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.16 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.16 173.32/119.16 The TRS R consists of the following rules: 173.32/119.16 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.16 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.16 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.16 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.16 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.16 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.16 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.16 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.16 new_primMinusNatS1 -> Zero 173.32/119.16 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.16 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.16 173.32/119.16 The set Q consists of the following terms: 173.32/119.16 173.32/119.16 new_primMinusNatS0(x0) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.16 new_primModNatS01(x0, x1) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.16 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.16 new_primMinusNatS1 173.32/119.16 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.16 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.16 new_primMinusNatS2(Zero, Zero) 173.32/119.16 new_primModNatS1(Zero, x0) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.16 new_primModNatS1(Succ(Zero), Zero) 173.32/119.16 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.16 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.16 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.16 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.16 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.16 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.16 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.16 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.16 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.16 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.16 173.32/119.16 We have to consider all minimal (P,Q,R)-chains. 173.32/119.16 ---------------------------------------- 173.32/119.16 173.32/119.16 (393) TransformationProof (EQUIVALENT) 173.32/119.16 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (394) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (395) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (396) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (397) DependencyGraphProof (EQUIVALENT) 173.32/119.17 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (398) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (399) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (400) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (401) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (402) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (403) TransformationProof (EQUIVALENT) 173.32/119.17 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (404) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (405) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (406) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (407) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (408) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (409) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (410) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (411) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (412) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (413) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (414) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (415) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (416) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (417) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (418) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (419) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (420) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (421) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (422) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (423) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (424) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (425) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (426) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (427) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (428) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (429) TransformationProof (EQUIVALENT) 173.32/119.17 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.32/119.17 173.32/119.17 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.32/119.17 173.32/119.17 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (430) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.32/119.17 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.32/119.17 173.32/119.17 The TRS R consists of the following rules: 173.32/119.17 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.32/119.17 new_primModNatS1(Zero, vuz11600) -> Zero 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.32/119.17 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.32/119.17 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.32/119.17 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.32/119.17 new_primMinusNatS2(Zero, Zero) -> Zero 173.32/119.17 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.32/119.17 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.32/119.17 new_primMinusNatS1 -> Zero 173.32/119.17 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.32/119.17 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.32/119.17 173.32/119.17 The set Q consists of the following terms: 173.32/119.17 173.32/119.17 new_primMinusNatS0(x0) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Zero)) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Zero)) 173.32/119.17 new_primModNatS01(x0, x1) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Zero) 173.32/119.17 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Zero)) 173.32/119.17 new_primMinusNatS1 173.32/119.17 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.32/119.17 new_primModNatS1(Succ(Zero), Succ(x0)) 173.32/119.17 new_primMinusNatS2(Zero, Zero) 173.32/119.17 new_primModNatS1(Zero, x0) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.32/119.17 new_primModNatS1(Succ(Zero), Zero) 173.32/119.17 new_primMinusNatS2(Zero, Succ(x0)) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.32/119.17 new_primMinusNatS2(Succ(x0), Zero) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.32/119.17 new_primEqInt(Neg(Zero), Neg(Zero)) 173.32/119.17 new_primModNatS02(x0, x1, Zero, Zero) 173.32/119.17 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.32/119.17 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.32/119.17 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.32/119.17 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.32/119.17 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.32/119.17 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.32/119.17 173.32/119.17 We have to consider all minimal (P,Q,R)-chains. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (431) DependencyGraphProof (EQUIVALENT) 173.32/119.17 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.32/119.17 ---------------------------------------- 173.32/119.17 173.32/119.17 (432) 173.32/119.17 Obligation: 173.32/119.17 Q DP problem: 173.32/119.17 The TRS P consists of the following rules: 173.32/119.17 173.32/119.17 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.32/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.32/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.32/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.32/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (433) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (434) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (435) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (436) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (437) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (438) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (439) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (440) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (441) TransformationProof (EQUIVALENT) 173.37/119.18 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (442) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (443) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (444) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (445) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (446) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (447) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (448) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (449) TransformationProof (EQUIVALENT) 173.37/119.18 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (450) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (451) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (452) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (453) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (454) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (455) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (456) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (457) DependencyGraphProof (EQUIVALENT) 173.37/119.18 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (458) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (459) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (460) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (461) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (462) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (463) TransformationProof (EQUIVALENT) 173.37/119.18 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (464) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (465) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (466) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.18 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.18 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.18 new_primMinusNatS1 -> Zero 173.37/119.18 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.18 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.18 173.37/119.18 The set Q consists of the following terms: 173.37/119.18 173.37/119.18 new_primMinusNatS0(x0) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.18 new_primModNatS01(x0, x1) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.18 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.18 new_primMinusNatS1 173.37/119.18 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.18 new_primMinusNatS2(Zero, Zero) 173.37/119.18 new_primModNatS1(Zero, x0) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) 173.37/119.18 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.18 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.18 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.18 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.18 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.18 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.18 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.18 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.18 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.18 173.37/119.18 We have to consider all minimal (P,Q,R)-chains. 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (467) TransformationProof (EQUIVALENT) 173.37/119.18 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.18 173.37/119.18 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.37/119.18 173.37/119.18 173.37/119.18 ---------------------------------------- 173.37/119.18 173.37/119.18 (468) 173.37/119.18 Obligation: 173.37/119.18 Q DP problem: 173.37/119.18 The TRS P consists of the following rules: 173.37/119.18 173.37/119.18 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.18 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.18 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.18 173.37/119.18 The TRS R consists of the following rules: 173.37/119.18 173.37/119.18 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.18 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.18 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.18 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.18 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.18 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.18 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.18 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (469) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (470) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (471) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (472) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (473) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (474) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (475) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (476) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (477) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (478) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (479) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (480) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (481) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (482) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (483) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (484) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (485) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (486) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (487) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (488) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (489) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (490) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (491) DependencyGraphProof (EQUIVALENT) 173.37/119.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (492) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (493) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (494) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (495) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (496) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (497) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (498) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (499) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (500) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (501) TransformationProof (EQUIVALENT) 173.37/119.19 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (502) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.19 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.19 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.19 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.19 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.19 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.19 173.37/119.19 We have to consider all minimal (P,Q,R)-chains. 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (503) TransformationProof (EQUIVALENT) 173.37/119.19 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.19 173.37/119.19 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.19 173.37/119.19 173.37/119.19 ---------------------------------------- 173.37/119.19 173.37/119.19 (504) 173.37/119.19 Obligation: 173.37/119.19 Q DP problem: 173.37/119.19 The TRS P consists of the following rules: 173.37/119.19 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.19 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.19 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.19 173.37/119.19 The TRS R consists of the following rules: 173.37/119.19 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.19 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.19 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.19 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.19 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.19 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.19 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.19 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.19 new_primMinusNatS1 -> Zero 173.37/119.19 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.19 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.19 173.37/119.19 The set Q consists of the following terms: 173.37/119.19 173.37/119.19 new_primMinusNatS0(x0) 173.37/119.19 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.19 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.19 new_primModNatS01(x0, x1) 173.37/119.19 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.19 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.19 new_primMinusNatS1 173.37/119.19 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.19 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.19 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.19 new_primMinusNatS2(Zero, Zero) 173.37/119.19 new_primModNatS1(Zero, x0) 173.37/119.19 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.19 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (505) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (506) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (507) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (508) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (509) TransformationProof (EQUIVALENT) 173.37/119.20 By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (510) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (511) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (512) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (513) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (514) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (515) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (516) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (517) DependencyGraphProof (EQUIVALENT) 173.37/119.20 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (518) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (519) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (520) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (521) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (522) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (523) TransformationProof (EQUIVALENT) 173.37/119.20 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (524) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (525) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (526) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (527) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (528) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (529) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (530) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (531) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (532) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (533) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (534) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (535) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (536) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (537) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (538) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.20 173.37/119.20 The set Q consists of the following terms: 173.37/119.20 173.37/119.20 new_primMinusNatS0(x0) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.20 new_primModNatS01(x0, x1) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.20 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.20 new_primMinusNatS1 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.20 new_primMinusNatS2(Zero, Zero) 173.37/119.20 new_primModNatS1(Zero, x0) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) 173.37/119.20 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.20 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.20 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.20 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.20 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.20 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.20 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.20 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.20 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.20 173.37/119.20 We have to consider all minimal (P,Q,R)-chains. 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (539) TransformationProof (EQUIVALENT) 173.37/119.20 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.20 173.37/119.20 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.20 173.37/119.20 173.37/119.20 ---------------------------------------- 173.37/119.20 173.37/119.20 (540) 173.37/119.20 Obligation: 173.37/119.20 Q DP problem: 173.37/119.20 The TRS P consists of the following rules: 173.37/119.20 173.37/119.20 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.20 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.20 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.20 173.37/119.20 The TRS R consists of the following rules: 173.37/119.20 173.37/119.20 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.20 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.20 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.20 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.20 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.20 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.20 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.20 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.20 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.20 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.20 new_primMinusNatS1 -> Zero 173.37/119.20 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.20 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.20 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (541) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (542) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (543) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (544) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (545) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (546) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (547) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (548) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (549) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (550) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (551) DependencyGraphProof (EQUIVALENT) 173.37/119.21 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (552) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (553) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (554) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (555) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (556) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (557) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (558) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (559) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (560) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (561) TransformationProof (EQUIVALENT) 173.37/119.21 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (562) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (563) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (564) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (565) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (566) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (567) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (568) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (569) TransformationProof (EQUIVALENT) 173.37/119.21 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (570) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (571) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (572) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (573) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (574) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.21 173.37/119.21 The TRS R consists of the following rules: 173.37/119.21 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.21 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.21 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.21 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.21 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.21 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.21 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.21 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.21 new_primMinusNatS1 -> Zero 173.37/119.21 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.21 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.21 173.37/119.21 The set Q consists of the following terms: 173.37/119.21 173.37/119.21 new_primMinusNatS0(x0) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.21 new_primModNatS01(x0, x1) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.21 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.21 new_primMinusNatS1 173.37/119.21 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.21 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.21 new_primMinusNatS2(Zero, Zero) 173.37/119.21 new_primModNatS1(Zero, x0) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.21 new_primModNatS1(Succ(Zero), Zero) 173.37/119.21 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.21 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.21 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.21 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.21 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.21 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.21 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.21 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.21 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.21 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.21 173.37/119.21 We have to consider all minimal (P,Q,R)-chains. 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (575) TransformationProof (EQUIVALENT) 173.37/119.21 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.21 173.37/119.21 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.37/119.21 173.37/119.21 173.37/119.21 ---------------------------------------- 173.37/119.21 173.37/119.21 (576) 173.37/119.21 Obligation: 173.37/119.21 Q DP problem: 173.37/119.21 The TRS P consists of the following rules: 173.37/119.21 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.21 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.21 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (577) DependencyGraphProof (EQUIVALENT) 173.37/119.22 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (578) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (579) TransformationProof (EQUIVALENT) 173.37/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.22 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.37/119.22 173.37/119.22 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (580) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (581) TransformationProof (EQUIVALENT) 173.37/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.37/119.22 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.37/119.22 173.37/119.22 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (582) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (583) TransformationProof (EQUIVALENT) 173.37/119.22 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: 173.37/119.22 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.37/119.22 173.37/119.22 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (584) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (585) TransformationProof (EQUIVALENT) 173.37/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.37/119.22 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.37/119.22 173.37/119.22 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (586) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.37/119.22 173.37/119.22 We have to consider all minimal (P,Q,R)-chains. 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (587) TransformationProof (EQUIVALENT) 173.37/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.37/119.22 173.37/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.37/119.22 173.37/119.22 173.37/119.22 ---------------------------------------- 173.37/119.22 173.37/119.22 (588) 173.37/119.22 Obligation: 173.37/119.22 Q DP problem: 173.37/119.22 The TRS P consists of the following rules: 173.37/119.22 173.37/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.37/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.37/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.37/119.22 173.37/119.22 The TRS R consists of the following rules: 173.37/119.22 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.37/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.37/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.37/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.37/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.37/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.37/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.37/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.37/119.22 new_primMinusNatS1 -> Zero 173.37/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.37/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.37/119.22 173.37/119.22 The set Q consists of the following terms: 173.37/119.22 173.37/119.22 new_primMinusNatS0(x0) 173.37/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.37/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.37/119.22 new_primModNatS01(x0, x1) 173.37/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.37/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.37/119.22 new_primMinusNatS1 173.37/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.37/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.37/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.37/119.22 new_primMinusNatS2(Zero, Zero) 173.37/119.22 new_primModNatS1(Zero, x0) 173.37/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.37/119.22 new_primModNatS1(Succ(Zero), Zero) 173.37/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.37/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.37/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.37/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.37/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (589) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (590) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (591) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (592) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (593) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (594) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (595) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (596) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (597) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (598) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (599) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (600) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (601) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (602) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (603) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (604) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (605) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (606) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (607) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (608) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.22 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.22 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.22 173.39/119.22 The TRS R consists of the following rules: 173.39/119.22 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.22 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.22 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.22 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.22 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.22 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.22 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.22 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.22 new_primMinusNatS1 -> Zero 173.39/119.22 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.22 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.22 173.39/119.22 The set Q consists of the following terms: 173.39/119.22 173.39/119.22 new_primMinusNatS0(x0) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.22 new_primModNatS01(x0, x1) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.22 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.22 new_primMinusNatS1 173.39/119.22 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.22 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.22 new_primMinusNatS2(Zero, Zero) 173.39/119.22 new_primModNatS1(Zero, x0) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.22 new_primModNatS1(Succ(Zero), Zero) 173.39/119.22 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.22 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.22 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.22 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.22 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.22 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.22 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.22 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.22 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.22 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.22 173.39/119.22 We have to consider all minimal (P,Q,R)-chains. 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (609) TransformationProof (EQUIVALENT) 173.39/119.22 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.22 173.39/119.22 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) 173.39/119.22 173.39/119.22 173.39/119.22 ---------------------------------------- 173.39/119.22 173.39/119.22 (610) 173.39/119.22 Obligation: 173.39/119.22 Q DP problem: 173.39/119.22 The TRS P consists of the following rules: 173.39/119.22 173.39/119.22 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (611) DependencyGraphProof (EQUIVALENT) 173.39/119.23 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (612) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (613) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (614) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (615) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (616) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (617) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (618) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (619) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (620) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (621) TransformationProof (EQUIVALENT) 173.39/119.23 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (622) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (623) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (624) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (625) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (626) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (627) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (628) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (629) TransformationProof (EQUIVALENT) 173.39/119.23 By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (630) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (631) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (632) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (633) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (634) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (635) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (636) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (637) DependencyGraphProof (EQUIVALENT) 173.39/119.23 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (638) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (639) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (640) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (641) TransformationProof (EQUIVALENT) 173.39/119.23 By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: 173.39/119.23 173.39/119.23 (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.23 173.39/119.23 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (642) 173.39/119.23 Obligation: 173.39/119.23 Q DP problem: 173.39/119.23 The TRS P consists of the following rules: 173.39/119.23 173.39/119.23 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.23 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 173.39/119.23 The TRS R consists of the following rules: 173.39/119.23 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.23 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.23 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.23 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.23 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.23 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.23 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.23 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.23 new_primMinusNatS1 -> Zero 173.39/119.23 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.23 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.23 173.39/119.23 The set Q consists of the following terms: 173.39/119.23 173.39/119.23 new_primMinusNatS0(x0) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.23 new_primModNatS01(x0, x1) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.23 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.23 new_primMinusNatS1 173.39/119.23 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.23 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.23 new_primMinusNatS2(Zero, Zero) 173.39/119.23 new_primModNatS1(Zero, x0) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.23 new_primModNatS1(Succ(Zero), Zero) 173.39/119.23 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.23 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.23 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.23 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.23 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.23 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.23 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.23 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.23 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.23 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.23 173.39/119.23 We have to consider all minimal (P,Q,R)-chains. 173.39/119.23 ---------------------------------------- 173.39/119.23 173.39/119.23 (643) QDPOrderProof (EQUIVALENT) 173.39/119.23 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.23 173.39/119.23 173.39/119.23 The following pairs can be oriented strictly and are deleted. 173.39/119.23 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.23 The remaining pairs can at least be oriented weakly. 173.39/119.23 Used ordering: Polynomial interpretation [POLO]: 173.39/119.23 173.39/119.23 POL(False) = 1 173.39/119.23 POL(Integer(x_1)) = 0 173.39/119.23 POL(Neg(x_1)) = 1 173.39/119.23 POL(Pos(x_1)) = x_1 173.39/119.23 POL(Succ(x_1)) = 1 173.39/119.23 POL(True) = 0 173.39/119.23 POL(Zero) = 0 173.39/119.23 POL(new_primEqInt(x_1, x_2)) = x_1 173.39/119.23 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.39/119.23 POL(new_primMinusNatS1) = 1 173.39/119.23 POL(new_primMinusNatS2(x_1, x_2)) = 0 173.39/119.23 POL(new_primModNatS01(x_1, x_2)) = 1 173.39/119.23 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 173.39/119.23 POL(new_primModNatS1(x_1, x_2)) = x_2 173.39/119.23 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = 1 173.39/119.23 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_2 173.39/119.23 173.39/119.23 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.24 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.24 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.24 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.24 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.24 173.39/119.24 173.39/119.24 ---------------------------------------- 173.39/119.24 173.39/119.24 (644) 173.39/119.24 Obligation: 173.39/119.24 Q DP problem: 173.39/119.24 The TRS P consists of the following rules: 173.39/119.24 173.39/119.24 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.24 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.24 173.39/119.24 The TRS R consists of the following rules: 173.39/119.24 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.24 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.24 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.24 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.24 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.24 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.24 new_primMinusNatS1 -> Zero 173.39/119.24 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.24 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.24 173.39/119.24 The set Q consists of the following terms: 173.39/119.24 173.39/119.24 new_primMinusNatS0(x0) 173.39/119.24 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.24 new_primModNatS01(x0, x1) 173.39/119.24 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.24 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.24 new_primMinusNatS1 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.24 new_primMinusNatS2(Zero, Zero) 173.39/119.24 new_primModNatS1(Zero, x0) 173.39/119.24 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) 173.39/119.24 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.24 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.24 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.24 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.24 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.24 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.24 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.24 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.24 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.24 173.39/119.24 We have to consider all minimal (P,Q,R)-chains. 173.39/119.24 ---------------------------------------- 173.39/119.24 173.39/119.24 (645) QDPOrderProof (EQUIVALENT) 173.39/119.24 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.24 173.39/119.24 173.39/119.24 The following pairs can be oriented strictly and are deleted. 173.39/119.24 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.24 The remaining pairs can at least be oriented weakly. 173.39/119.24 Used ordering: Polynomial interpretation [POLO]: 173.39/119.24 173.39/119.24 POL(False) = 1 173.39/119.24 POL(Integer(x_1)) = x_1 173.39/119.24 POL(Neg(x_1)) = x_1 173.39/119.24 POL(Pos(x_1)) = 1 173.39/119.24 POL(Succ(x_1)) = 1 173.39/119.24 POL(True) = 0 173.39/119.24 POL(Zero) = 0 173.39/119.24 POL(new_primEqInt(x_1, x_2)) = x_1 173.39/119.24 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.39/119.24 POL(new_primMinusNatS1) = 1 173.39/119.24 POL(new_primMinusNatS2(x_1, x_2)) = 0 173.39/119.24 POL(new_primModNatS01(x_1, x_2)) = 1 173.39/119.24 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 173.39/119.24 POL(new_primModNatS1(x_1, x_2)) = x_2 173.39/119.24 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = x_4 173.39/119.24 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_2 173.39/119.24 173.39/119.24 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.24 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.24 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.24 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.24 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.24 173.39/119.24 173.39/119.24 ---------------------------------------- 173.39/119.24 173.39/119.24 (646) 173.39/119.24 Obligation: 173.39/119.24 Q DP problem: 173.39/119.24 The TRS P consists of the following rules: 173.39/119.24 173.39/119.24 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.24 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.24 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.24 173.39/119.24 The TRS R consists of the following rules: 173.39/119.24 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.24 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.24 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.24 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.24 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.24 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.24 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.24 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.24 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.24 new_primMinusNatS1 -> Zero 173.39/119.24 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.24 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.24 173.39/119.24 The set Q consists of the following terms: 173.39/119.24 173.39/119.24 new_primMinusNatS0(x0) 173.39/119.24 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.24 new_primModNatS01(x0, x1) 173.39/119.24 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.24 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.24 new_primMinusNatS1 173.39/119.24 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.24 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.24 new_primMinusNatS2(Zero, Zero) 173.39/119.24 new_primModNatS1(Zero, x0) 173.39/119.24 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.24 new_primModNatS1(Succ(Zero), Zero) 173.39/119.24 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.24 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.24 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.24 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.24 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.24 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.24 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.24 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.24 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.24 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.24 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.24 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.24 173.39/119.24 We have to consider all minimal (P,Q,R)-chains. 173.39/119.24 ---------------------------------------- 173.39/119.24 173.39/119.24 (647) InductionCalculusProof (EQUIVALENT) 173.39/119.24 Note that final constraints are written in bold face. 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) the following chains were created: 173.39/119.24 *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x6, False, Neg(Succ(Succ(x7))), Pos(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x8, False, x9, x10) -> new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9), new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x11, False, Pos(Succ(Succ(x12))), Pos(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)=new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x8, False, x9, x10)_>=_new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x13, False, x14, x15) -> new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14), new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x16, False, Pos(Succ(Succ(x17))), Neg(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)=new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x13, False, x14, x15)_>=_new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x18, False, x19, x20) -> new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19), new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x21, False, Neg(Succ(Succ(x22))), Neg(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)=new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x18, False, x19, x20)_>=_new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x23, False, x24, x25) -> new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24), new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x26, False, Neg(Succ(Succ(Succ(x27)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)=new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x23, False, x24, x25)_>=_new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x28, False, x29, x30) -> new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29), new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x31, False, Pos(Succ(Succ(Succ(x32)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)=new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x28, False, x29, x30)_>=_new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x33, False, x34, x35) -> new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34), new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x36, False, Pos(Succ(Succ(Succ(x37)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)=new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x33, False, x34, x35)_>=_new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x38, False, x39, x40) -> new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39), new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x41, False, Neg(Succ(Succ(Succ(x42)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)=new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x38, False, x39, x40)_>=_new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x43, False, x44, x45) -> new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44), new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) -> new_quot2(x46, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x48))))), Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)=new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) ==> new_quot2(x43, False, x44, x45)_>=_new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x49, False, x50, x51) -> new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50), new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x52, False, Neg(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)=new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x49, False, x50, x51)_>=_new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x54, False, x55, x56) -> new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55), new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) -> new_quot2(x57, new_primEqInt(Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)=new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) ==> new_quot2(x54, False, x55, x56)_>=_new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x59, False, x60, x61) -> new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60), new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) -> new_quot2(x62, new_primEqInt(Pos(new_primModNatS02(x63, Zero, x63, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x63, Zero, x63, Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)=new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) ==> new_quot2(x59, False, x60, x61)_>=_new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x64, False, x65, x66) -> new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65), new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x67, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)=new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x64, False, x65, x66)_>=_new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x68, False, x69, x70) -> new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69), new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) -> new_quot2(x71, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x73))))), Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)=new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) ==> new_quot2(x68, False, x69, x70)_>=_new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x74, False, x75, x76) -> new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75), new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x77, False, Pos(Succ(Succ(Succ(Succ(x78))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)=new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x74, False, x75, x76)_>=_new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x79, False, x80, x81) -> new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80), new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) -> new_quot2(x82, new_primEqInt(Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)=new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) ==> new_quot2(x79, False, x80, x81)_>=_new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x84, False, x85, x86) -> new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85), new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) -> new_quot2(x87, new_primEqInt(Pos(new_primModNatS02(x88, Zero, x88, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x88, Zero, x88, Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)=new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) ==> new_quot2(x84, False, x85, x86)_>=_new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x89, False, x90, x91) -> new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90), new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x92, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)=new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x89, False, x90, x91)_>=_new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x93, False, x94, x95) -> new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94), new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) -> new_quot2(x96, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x98))))), Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)=new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) ==> new_quot2(x93, False, x94, x95)_>=_new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x99, False, x100, x101) -> new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100), new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x102, False, Pos(Succ(Succ(Succ(Succ(x103))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)=new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x99, False, x100, x101)_>=_new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x104, False, x105, x106) -> new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105), new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) -> new_quot2(x107, new_primEqInt(Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)=new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) ==> new_quot2(x104, False, x105, x106)_>=_new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x109, False, x110, x111) -> new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110), new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) -> new_quot2(x112, new_primEqInt(Neg(new_primModNatS02(x113, Zero, x113, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x113, Zero, x113, Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)=new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) ==> new_quot2(x109, False, x110, x111)_>=_new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x114, False, x115, x116) -> new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115), new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x117, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)=new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x114, False, x115, x116)_>=_new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x118, False, x119, x120) -> new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119), new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) -> new_quot2(x121, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x123))))), Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)=new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) ==> new_quot2(x118, False, x119, x120)_>=_new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x124, False, x125, x126) -> new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125), new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x127, False, Neg(Succ(Succ(Succ(Succ(x128))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)=new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x124, False, x125, x126)_>=_new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x129, False, x130, x131) -> new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130), new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) -> new_quot2(x132, new_primEqInt(Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero))))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)=new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) ==> new_quot2(x129, False, x130, x131)_>=_new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x134, False, x135, x136) -> new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135), new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) -> new_quot2(x137, new_primEqInt(Neg(new_primModNatS02(x138, Zero, x138, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x138, Zero, x138, Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)=new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) ==> new_quot2(x134, False, x135, x136)_>=_new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 *We consider the chain new_quot2(x139, False, x140, x141) -> new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140), new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x142, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)=new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x139, False, x140, x141)_>=_new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero))), new_quot2(x145, False, x146, x147) -> new_quot1(x145, x146, x147, Integer(Pos(Zero)), x146) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))=new_quot2(x145, False, x146, x147) ==> new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero))), new_quot2(x206, False, x207, x208) -> new_quot1(x206, x207, x208, Integer(Pos(Zero)), x207) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))=new_quot2(x206, False, x207, x208) ==> new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero))), new_quot2(x267, False, x268, x269) -> new_quot1(x267, x268, x269, Integer(Pos(Zero)), x268) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))=new_quot2(x267, False, x268, x269) ==> new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero))), new_quot2(x328, False, x329, x330) -> new_quot1(x328, x329, x330, Integer(Pos(Zero)), x329) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))=new_quot2(x328, False, x329, x330) ==> new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero)))), new_quot2(x389, False, x390, x391) -> new_quot1(x389, x390, x391, Integer(Pos(Zero)), x390) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))=new_quot2(x389, False, x390, x391) ==> new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero)))), new_quot2(x450, False, x451, x452) -> new_quot1(x450, x451, x452, Integer(Pos(Zero)), x451) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))=new_quot2(x450, False, x451, x452) ==> new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero)))), new_quot2(x511, False, x512, x513) -> new_quot1(x511, x512, x513, Integer(Pos(Zero)), x512) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))=new_quot2(x511, False, x512, x513) ==> new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero)))), new_quot2(x572, False, x573, x574) -> new_quot1(x572, x573, x574, Integer(Pos(Zero)), x573) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))=new_quot2(x572, False, x573, x574) ==> new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632)))))) -> new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))), new_quot2(x634, False, x635, x636) -> new_quot1(x634, x635, x636, Integer(Pos(Zero)), x635) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))=new_quot2(x634, False, x635, x636) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=x1851 & Pos(Zero)=x1852 & new_primEqInt(x1851, x1852)=False ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1851, x1852)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Neg(Succ(x1854)) & Pos(Zero)=Pos(x1853) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Pos(Succ(x1855)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(Succ(x632))=x1856 & Succ(Succ(x633))=x1857 & new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x1860, x1859)=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1860 & Succ(Succ(Zero))=x1859 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 & (\/x1865,x1866:new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1865) & Succ(Succ(x1862))=x1864 & Succ(Succ(x1861))=x1863 ==> new_quot1(x1866, Pos(Succ(Succ(Succ(Succ(x1862))))), Neg(Succ(Succ(Succ(Succ(x1861))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1862))))))_>=_new_quot2(x1866, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1861))))), Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x1868, x1867)=Succ(x1855) & Succ(Succ(Zero))=x1868 & Succ(Succ(Zero))=x1867 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x1871))=Succ(x1855) & Succ(Succ(Zero))=x1871 & Succ(Succ(Succ(x1869)))=x1870 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1860, x1859)=Succ(x1855) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x1873), Succ(x1872)), Succ(x1872))=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1873 & Succ(Succ(Zero))=x1872 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1868, x1867)=Succ(x1855) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x1893), Succ(x1892)), Succ(x1892))=Succ(x1855) & Succ(Succ(Zero))=x1893 & Succ(Succ(Zero))=x1892 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) which results in the following new constraints: 173.39/119.24 173.39/119.24 (15) (new_primModNatS01(x1880, x1879)=Succ(x1855) & Succ(Succ(Succ(Succ(x1878))))=x1880 & Succ(Succ(Succ(Zero)))=x1879 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) 173.39/119.24 173.39/119.24 (16) (new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1855) & Succ(Succ(Succ(Succ(x1882))))=x1884 & Succ(Succ(Succ(Succ(x1881))))=x1883 & (\/x1885,x1886:new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1885) & Succ(Succ(Succ(x1882)))=x1884 & Succ(Succ(Succ(x1881)))=x1883 ==> new_quot1(x1886, Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))))_>=_new_quot2(x1886, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) 173.39/119.24 173.39/119.24 (17) (new_primModNatS01(x1888, x1887)=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1888 & Succ(Succ(Succ(Zero)))=x1887 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 (18) (Succ(Succ(x1891))=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1891 & Succ(Succ(Succ(Succ(x1889))))=x1890 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (19) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (20) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (21) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (22) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (23) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x723, False, x724, x725) -> new_quot1(x723, x724, x725, Integer(Pos(Zero)), x724) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x723, False, x724, x725) ==> new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783)))))) -> new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))), new_quot2(x784, False, x785, x786) -> new_quot1(x784, x785, x786, Integer(Pos(Zero)), x785) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))=new_quot2(x784, False, x785, x786) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=x1898 & Pos(Zero)=x1899 & new_primEqInt(x1898, x1899)=False ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1898, x1899)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Neg(Succ(x1901)) & Pos(Zero)=Pos(x1900) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Pos(Succ(x1902)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(x783)=x1903 & Succ(Succ(Zero))=x1904 & new_primModNatS1(x1903, x1904)=Succ(x1902) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1903, x1904)=Succ(x1902) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (Succ(Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1905) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS1(new_primMinusNatS0(x1907), Zero)=Succ(x1902) & Succ(x783)=Succ(Succ(x1907)) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (9) (new_primModNatS02(x1909, x1908, x1909, x1908)=Succ(x1902) & Succ(x783)=Succ(Succ(x1909)) & Succ(Succ(Zero))=Succ(x1908) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (x1909=x1910 & x1908=x1911 & new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) & Succ(Zero)=x1908 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) which results in the following new constraints: 173.39/119.24 173.39/119.24 (12) (new_primModNatS01(x1914, x1913)=Succ(x1902) & x1914=Succ(x1912) & x1913=Zero & Succ(Zero)=x1913 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (13) (new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1902) & x1918=Succ(x1916) & x1917=Succ(x1915) & Succ(Zero)=x1917 & (\/x1919,x1920:new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1919) & x1918=x1916 & x1917=x1915 & Succ(Zero)=x1917 ==> new_quot1(x1920, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x1920, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (14) (new_primModNatS01(x1922, x1921)=Succ(x1902) & x1922=Zero & x1921=Zero & Succ(Zero)=x1921 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (15) (Succ(Succ(x1925))=Succ(x1902) & x1925=Zero & x1924=Succ(x1923) & Succ(Zero)=x1924 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (16) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (17) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844)))))) -> new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero))), new_quot2(x845, False, x846, x847) -> new_quot1(x845, x846, x847, Integer(Pos(Zero)), x846) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))=new_quot2(x845, False, x846, x847) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS02(x844, Zero, x844, Zero))=x1928 & Pos(Zero)=x1929 & new_primEqInt(x1928, x1929)=False ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1928, x1929)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Neg(Succ(x1931)) & Pos(Zero)=Pos(x1930) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Pos(Succ(x1932)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Zero=x1933 & x844=x1934 & Zero=x1935 & new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x1938, x1937)=Succ(x1932) & Zero=x1937 & x1938=Succ(x1936) & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1938))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1938))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1938, Zero, x1938, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1938, Zero, x1938, Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1932) & Zero=x1941 & x1942=Succ(x1940) & Zero=Succ(x1939) & (\/x1943,x1944:new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1943) & Zero=x1941 & x1942=x1940 & Zero=x1939 ==> new_quot1(x1944, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x1944, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x1946, x1945)=Succ(x1932) & Zero=x1945 & x1946=Zero & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1946))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1946))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1946, Zero, x1946, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1946, Zero, x1946, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x1949))=Succ(x1932) & Zero=x1948 & x1949=Zero & Zero=Succ(x1947) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1949))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1949))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1949, Zero, x1949, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1949, Zero, x1949, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (Succ(x1936)=x1950 & new_primModNatS01(x1950, x1937)=Succ(x1932) & Zero=x1937 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (Zero=x1957 & new_primModNatS01(x1957, x1945)=Succ(x1932) & Zero=x1945 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1950, x1937)=Succ(x1932) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x1952), Succ(x1951)), Succ(x1951))=Succ(x1932) & Succ(x1936)=x1952 & Zero=x1951 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1957, x1945)=Succ(x1932) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_primModNatS1(new_primMinusNatS2(Succ(x1959), Succ(x1958)), Succ(x1958))=Succ(x1932) & Zero=x1959 & Zero=x1958 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (15) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x905, False, x906, x907) -> new_quot1(x905, x906, x907, Integer(Pos(Zero)), x906) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x905, False, x906, x907) ==> new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937)))))) -> new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))), new_quot2(x939, False, x940, x941) -> new_quot1(x939, x940, x941, Integer(Pos(Zero)), x940) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))=new_quot2(x939, False, x940, x941) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=x1964 & Pos(Zero)=x1965 & new_primEqInt(x1964, x1965)=False ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1964, x1965)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Neg(Succ(x1967)) & Pos(Zero)=Pos(x1966) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Pos(Succ(x1968)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(Succ(x937))=x1969 & Succ(Succ(x938))=x1970 & new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x1973, x1972)=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1973 & Succ(Succ(Zero))=x1972 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 & (\/x1978,x1979:new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1978) & Succ(Succ(x1975))=x1977 & Succ(Succ(x1974))=x1976 ==> new_quot1(x1979, Pos(Succ(Succ(Succ(Succ(x1975))))), Pos(Succ(Succ(Succ(Succ(x1974))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1975))))))_>=_new_quot2(x1979, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1974))))), Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x1981, x1980)=Succ(x1968) & Succ(Succ(Zero))=x1981 & Succ(Succ(Zero))=x1980 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x1984))=Succ(x1968) & Succ(Succ(Zero))=x1984 & Succ(Succ(Succ(x1982)))=x1983 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1973, x1972)=Succ(x1968) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x1986), Succ(x1985)), Succ(x1985))=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1986 & Succ(Succ(Zero))=x1985 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1981, x1980)=Succ(x1968) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2006), Succ(x2005)), Succ(x2005))=Succ(x1968) & Succ(Succ(Zero))=x2006 & Succ(Succ(Zero))=x2005 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) which results in the following new constraints: 173.39/119.24 173.39/119.24 (15) (new_primModNatS01(x1993, x1992)=Succ(x1968) & Succ(Succ(Succ(Succ(x1991))))=x1993 & Succ(Succ(Succ(Zero)))=x1992 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) 173.39/119.24 173.39/119.24 (16) (new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1968) & Succ(Succ(Succ(Succ(x1995))))=x1997 & Succ(Succ(Succ(Succ(x1994))))=x1996 & (\/x1998,x1999:new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1998) & Succ(Succ(Succ(x1995)))=x1997 & Succ(Succ(Succ(x1994)))=x1996 ==> new_quot1(x1999, Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))))_>=_new_quot2(x1999, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) 173.39/119.24 173.39/119.24 (17) (new_primModNatS01(x2001, x2000)=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2001 & Succ(Succ(Succ(Zero)))=x2000 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 (18) (Succ(Succ(x2004))=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2004 & Succ(Succ(Succ(Succ(x2002))))=x2003 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (19) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (20) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (21) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (22) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (23) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x1028, False, x1029, x1030) -> new_quot1(x1028, x1029, x1030, Integer(Pos(Zero)), x1029) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x1028, False, x1029, x1030) ==> new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088)))))) -> new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))), new_quot2(x1089, False, x1090, x1091) -> new_quot1(x1089, x1090, x1091, Integer(Pos(Zero)), x1090) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))=new_quot2(x1089, False, x1090, x1091) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=x2011 & Pos(Zero)=x2012 & new_primEqInt(x2011, x2012)=False ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2011, x2012)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Neg(Succ(x2014)) & Pos(Zero)=Pos(x2013) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Pos(Succ(x2015)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(x1088)=x2016 & Succ(Succ(Zero))=x2017 & new_primModNatS1(x2016, x2017)=Succ(x2015) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2016, x2017)=Succ(x2015) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (Succ(Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2018) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS1(new_primMinusNatS0(x2020), Zero)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2020)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (9) (new_primModNatS02(x2022, x2021, x2022, x2021)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2022)) & Succ(Succ(Zero))=Succ(x2021) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (x2022=x2023 & x2021=x2024 & new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) & Succ(Zero)=x2021 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) which results in the following new constraints: 173.39/119.24 173.39/119.24 (12) (new_primModNatS01(x2027, x2026)=Succ(x2015) & x2027=Succ(x2025) & x2026=Zero & Succ(Zero)=x2026 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (13) (new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2015) & x2031=Succ(x2029) & x2030=Succ(x2028) & Succ(Zero)=x2030 & (\/x2032,x2033:new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2032) & x2031=x2029 & x2030=x2028 & Succ(Zero)=x2030 ==> new_quot1(x2033, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x2033, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (14) (new_primModNatS01(x2035, x2034)=Succ(x2015) & x2035=Zero & x2034=Zero & Succ(Zero)=x2034 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (15) (Succ(Succ(x2038))=Succ(x2015) & x2038=Zero & x2037=Succ(x2036) & Succ(Zero)=x2037 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (16) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (17) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149)))))) -> new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero))), new_quot2(x1150, False, x1151, x1152) -> new_quot1(x1150, x1151, x1152, Integer(Pos(Zero)), x1151) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))=new_quot2(x1150, False, x1151, x1152) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=x2041 & Pos(Zero)=x2042 & new_primEqInt(x2041, x2042)=False ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2041, x2042)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Neg(Succ(x2044)) & Pos(Zero)=Pos(x2043) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) 173.39/119.24 173.39/119.24 (4) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Pos(Succ(x2045)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Zero=x2046 & x1149=x2047 & Zero=x2048 & new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x2051, x2050)=Succ(x2045) & Zero=x2050 & x2051=Succ(x2049) & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2051))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2051))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2051, Zero, x2051, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2051, Zero, x2051, Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2045) & Zero=x2054 & x2055=Succ(x2053) & Zero=Succ(x2052) & (\/x2056,x2057:new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2056) & Zero=x2054 & x2055=x2053 & Zero=x2052 ==> new_quot1(x2057, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x2057, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x2059, x2058)=Succ(x2045) & Zero=x2058 & x2059=Zero & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2059))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2059))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2059, Zero, x2059, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2059, Zero, x2059, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x2062))=Succ(x2045) & Zero=x2061 & x2062=Zero & Zero=Succ(x2060) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2062))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2062))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2062, Zero, x2062, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2062, Zero, x2062, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (Succ(x2049)=x2063 & new_primModNatS01(x2063, x2050)=Succ(x2045) & Zero=x2050 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (Zero=x2070 & new_primModNatS01(x2070, x2058)=Succ(x2045) & Zero=x2058 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2063, x2050)=Succ(x2045) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2065), Succ(x2064)), Succ(x2064))=Succ(x2045) & Succ(x2049)=x2065 & Zero=x2064 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2070, x2058)=Succ(x2045) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2072), Succ(x2071)), Succ(x2071))=Succ(x2045) & Zero=x2072 & Zero=x2071 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (15) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x1210, False, x1211, x1212) -> new_quot1(x1210, x1211, x1212, Integer(Pos(Zero)), x1211) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x1210, False, x1211, x1212) ==> new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242)))))) -> new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))), new_quot2(x1244, False, x1245, x1246) -> new_quot1(x1244, x1245, x1246, Integer(Pos(Zero)), x1245) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))=new_quot2(x1244, False, x1245, x1246) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=x2077 & Pos(Zero)=x2078 & new_primEqInt(x2077, x2078)=False ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2077, x2078)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Neg(Succ(x2080)) & Pos(Zero)=Pos(x2079) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) 173.39/119.24 173.39/119.24 (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Pos(Succ(x2081)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(Succ(x1242))=x2082 & Succ(Succ(x1243))=x2083 & new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x2086, x2085)=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2086 & Succ(Succ(Zero))=x2085 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 & (\/x2091,x2092:new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2091) & Succ(Succ(x2088))=x2090 & Succ(Succ(x2087))=x2089 ==> new_quot1(x2092, Neg(Succ(Succ(Succ(Succ(x2088))))), Pos(Succ(Succ(Succ(Succ(x2087))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2088))))))_>=_new_quot2(x2092, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2087))))), Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x2094, x2093)=Succ(x2080) & Succ(Succ(Zero))=x2094 & Succ(Succ(Zero))=x2093 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x2097))=Succ(x2080) & Succ(Succ(Zero))=x2097 & Succ(Succ(Succ(x2095)))=x2096 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2086, x2085)=Succ(x2080) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x2099), Succ(x2098)), Succ(x2098))=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2099 & Succ(Succ(Zero))=x2098 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2094, x2093)=Succ(x2080) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2119), Succ(x2118)), Succ(x2118))=Succ(x2080) & Succ(Succ(Zero))=x2119 & Succ(Succ(Zero))=x2118 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) which results in the following new constraints: 173.39/119.24 173.39/119.24 (15) (new_primModNatS01(x2106, x2105)=Succ(x2080) & Succ(Succ(Succ(Succ(x2104))))=x2106 & Succ(Succ(Succ(Zero)))=x2105 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) 173.39/119.24 173.39/119.24 (16) (new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2080) & Succ(Succ(Succ(Succ(x2108))))=x2110 & Succ(Succ(Succ(Succ(x2107))))=x2109 & (\/x2111,x2112:new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2111) & Succ(Succ(Succ(x2108)))=x2110 & Succ(Succ(Succ(x2107)))=x2109 ==> new_quot1(x2112, Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))))_>=_new_quot2(x2112, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) 173.39/119.24 173.39/119.24 (17) (new_primModNatS01(x2114, x2113)=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2114 & Succ(Succ(Succ(Zero)))=x2113 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 (18) (Succ(Succ(x2117))=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2117 & Succ(Succ(Succ(Succ(x2115))))=x2116 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (19) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (20) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (21) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (22) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (23) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1333, False, x1334, x1335) -> new_quot1(x1333, x1334, x1335, Integer(Pos(Zero)), x1334) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1333, False, x1334, x1335) ==> new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393)))))) -> new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))), new_quot2(x1394, False, x1395, x1396) -> new_quot1(x1394, x1395, x1396, Integer(Pos(Zero)), x1395) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))=new_quot2(x1394, False, x1395, x1396) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=x2124 & Pos(Zero)=x2125 & new_primEqInt(x2124, x2125)=False ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2124, x2125)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Neg(Succ(x2127)) & Pos(Zero)=Pos(x2126) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (4) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Pos(Succ(x2128)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(x1393)=x2129 & Succ(Succ(Zero))=x2130 & new_primModNatS1(x2129, x2130)=Succ(x2127) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2129, x2130)=Succ(x2127) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (Succ(Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2131) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS1(new_primMinusNatS0(x2133), Zero)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2133)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (9) (new_primModNatS02(x2135, x2134, x2135, x2134)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2135)) & Succ(Succ(Zero))=Succ(x2134) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (x2135=x2136 & x2134=x2137 & new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) & Succ(Zero)=x2134 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) which results in the following new constraints: 173.39/119.24 173.39/119.24 (12) (new_primModNatS01(x2140, x2139)=Succ(x2127) & x2140=Succ(x2138) & x2139=Zero & Succ(Zero)=x2139 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (13) (new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2127) & x2144=Succ(x2142) & x2143=Succ(x2141) & Succ(Zero)=x2143 & (\/x2145,x2146:new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2145) & x2144=x2142 & x2143=x2141 & Succ(Zero)=x2143 ==> new_quot1(x2146, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x2146, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (14) (new_primModNatS01(x2148, x2147)=Succ(x2127) & x2148=Zero & x2147=Zero & Succ(Zero)=x2147 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 (15) (Succ(Succ(x2151))=Succ(x2127) & x2151=Zero & x2150=Succ(x2149) & Succ(Zero)=x2150 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (16) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (17) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454)))))) -> new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero))), new_quot2(x1455, False, x1456, x1457) -> new_quot1(x1455, x1456, x1457, Integer(Pos(Zero)), x1456) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))=new_quot2(x1455, False, x1456, x1457) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=x2154 & Pos(Zero)=x2155 & new_primEqInt(x2154, x2155)=False ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2154, x2155)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Neg(Succ(x2157)) & Pos(Zero)=Pos(x2156) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) 173.39/119.24 173.39/119.24 (4) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Pos(Succ(x2158)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Zero=x2159 & x1454=x2160 & Zero=x2161 & new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x2164, x2163)=Succ(x2157) & Zero=x2163 & x2164=Succ(x2162) & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2164))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2164))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2164, Zero, x2164, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2164, Zero, x2164, Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2157) & Zero=x2167 & x2168=Succ(x2166) & Zero=Succ(x2165) & (\/x2169,x2170:new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2169) & Zero=x2167 & x2168=x2166 & Zero=x2165 ==> new_quot1(x2170, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x2170, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x2172, x2171)=Succ(x2157) & Zero=x2171 & x2172=Zero & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2172))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2172))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2172, Zero, x2172, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2172, Zero, x2172, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x2175))=Succ(x2157) & Zero=x2174 & x2175=Zero & Zero=Succ(x2173) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2175))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2175))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2175, Zero, x2175, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2175, Zero, x2175, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (Succ(x2162)=x2176 & new_primModNatS01(x2176, x2163)=Succ(x2157) & Zero=x2163 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (Zero=x2183 & new_primModNatS01(x2183, x2171)=Succ(x2157) & Zero=x2171 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2176, x2163)=Succ(x2157) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2178), Succ(x2177)), Succ(x2177))=Succ(x2157) & Succ(x2162)=x2178 & Zero=x2177 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2183, x2171)=Succ(x2157) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2185), Succ(x2184)), Succ(x2184))=Succ(x2157) & Zero=x2185 & Zero=x2184 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (15) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1515, False, x1516, x1517) -> new_quot1(x1515, x1516, x1517, Integer(Pos(Zero)), x1516) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1515, False, x1516, x1517) ==> new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.24 *We consider the chain new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547)))))) -> new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))), new_quot2(x1549, False, x1550, x1551) -> new_quot1(x1549, x1550, x1551, Integer(Pos(Zero)), x1550) which results in the following constraint: 173.39/119.24 173.39/119.24 (1) (new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))=new_quot2(x1549, False, x1550, x1551) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (2) (Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=x2190 & Pos(Zero)=x2191 & new_primEqInt(x2190, x2191)=False ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2190, x2191)=False which results in the following new constraints: 173.39/119.24 173.39/119.24 (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Neg(Succ(x2193)) & Pos(Zero)=Pos(x2192) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) 173.39/119.24 173.39/119.24 (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Pos(Succ(x2194)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (5) (Succ(Succ(x1547))=x2195 & Succ(Succ(x1548))=x2196 & new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) which results in the following new constraints: 173.39/119.24 173.39/119.24 (6) (new_primModNatS01(x2199, x2198)=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2199 & Succ(Succ(Zero))=x2198 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) 173.39/119.24 173.39/119.24 (7) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 & (\/x2204,x2205:new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2204) & Succ(Succ(x2201))=x2203 & Succ(Succ(x2200))=x2202 ==> new_quot1(x2205, Neg(Succ(Succ(Succ(Succ(x2201))))), Neg(Succ(Succ(Succ(Succ(x2200))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2201))))))_>=_new_quot2(x2205, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2200))))), Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) 173.39/119.24 173.39/119.24 (8) (new_primModNatS01(x2207, x2206)=Succ(x2193) & Succ(Succ(Zero))=x2207 & Succ(Succ(Zero))=x2206 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 (9) (Succ(Succ(x2210))=Succ(x2193) & Succ(Succ(Zero))=x2210 & Succ(Succ(Succ(x2208)))=x2209 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2199, x2198)=Succ(x2193) which results in the following new constraint: 173.39/119.24 173.39/119.24 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x2212), Succ(x2211)), Succ(x2211))=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2212 & Succ(Succ(Zero))=x2211 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (11) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2207, x2206)=Succ(x2193) which results in the following new constraint: 173.39/119.24 173.39/119.24 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2232), Succ(x2231)), Succ(x2231))=Succ(x2193) & Succ(Succ(Zero))=x2232 & Succ(Succ(Zero))=x2231 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (13) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.24 173.39/119.24 (14) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) which results in the following new constraints: 173.39/119.24 173.39/119.24 (15) (new_primModNatS01(x2219, x2218)=Succ(x2193) & Succ(Succ(Succ(Succ(x2217))))=x2219 & Succ(Succ(Succ(Zero)))=x2218 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) 173.39/119.24 173.39/119.24 (16) (new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2193) & Succ(Succ(Succ(Succ(x2221))))=x2223 & Succ(Succ(Succ(Succ(x2220))))=x2222 & (\/x2224,x2225:new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2224) & Succ(Succ(Succ(x2221)))=x2223 & Succ(Succ(Succ(x2220)))=x2222 ==> new_quot1(x2225, Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))))_>=_new_quot2(x2225, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) 173.39/119.24 173.39/119.24 (17) (new_primModNatS01(x2227, x2226)=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2227 & Succ(Succ(Succ(Zero)))=x2226 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.24 173.39/119.24 (18) (Succ(Succ(x2230))=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2230 & Succ(Succ(Succ(Succ(x2228))))=x2229 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (19) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.24 173.39/119.24 (20) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) 173.39/119.24 173.39/119.24 173.39/119.24 173.39/119.24 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (21) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (22) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (23) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: 173.39/119.25 *We consider the chain new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1638, False, x1639, x1640) -> new_quot1(x1638, x1639, x1640, Integer(Pos(Zero)), x1639) which results in the following constraint: 173.39/119.25 173.39/119.25 (1) (new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1638, False, x1639, x1640) ==> new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (2) (new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: 173.39/119.25 *We consider the chain new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698)))))) -> new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))), new_quot2(x1699, False, x1700, x1701) -> new_quot1(x1699, x1700, x1701, Integer(Pos(Zero)), x1700) which results in the following constraint: 173.39/119.25 173.39/119.25 (1) (new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))=new_quot2(x1699, False, x1700, x1701) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (2) (Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=x2237 & Pos(Zero)=x2238 & new_primEqInt(x2237, x2238)=False ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2237, x2238)=False which results in the following new constraints: 173.39/119.25 173.39/119.25 (3) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Neg(Succ(x2240)) & Pos(Zero)=Pos(x2239) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (4) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Pos(Succ(x2241)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (5) (Succ(x1698)=x2242 & Succ(Succ(Zero))=x2243 & new_primModNatS1(x2242, x2243)=Succ(x2240) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2242, x2243)=Succ(x2240) which results in the following new constraints: 173.39/119.25 173.39/119.25 (6) (Succ(Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2244) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (8) (new_primModNatS1(new_primMinusNatS0(x2246), Zero)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2246)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (9) (new_primModNatS02(x2248, x2247, x2248, x2247)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2248)) & Succ(Succ(Zero))=Succ(x2247) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (10) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (11) (x2248=x2249 & x2247=x2250 & new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) & Succ(Zero)=x2247 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) which results in the following new constraints: 173.39/119.25 173.39/119.25 (12) (new_primModNatS01(x2253, x2252)=Succ(x2240) & x2253=Succ(x2251) & x2252=Zero & Succ(Zero)=x2252 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (13) (new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2240) & x2257=Succ(x2255) & x2256=Succ(x2254) & Succ(Zero)=x2256 & (\/x2258,x2259:new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2258) & x2257=x2255 & x2256=x2254 & Succ(Zero)=x2256 ==> new_quot1(x2259, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x2259, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (14) (new_primModNatS01(x2261, x2260)=Succ(x2240) & x2261=Zero & x2260=Zero & Succ(Zero)=x2260 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 (15) (Succ(Succ(x2264))=Succ(x2240) & x2264=Zero & x2263=Succ(x2262) & Succ(Zero)=x2263 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (16) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (17) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: 173.39/119.25 *We consider the chain new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759)))))) -> new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero))), new_quot2(x1760, False, x1761, x1762) -> new_quot1(x1760, x1761, x1762, Integer(Pos(Zero)), x1761) which results in the following constraint: 173.39/119.25 173.39/119.25 (1) (new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))=new_quot2(x1760, False, x1761, x1762) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (2) (Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=x2267 & Pos(Zero)=x2268 & new_primEqInt(x2267, x2268)=False ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2267, x2268)=False which results in the following new constraints: 173.39/119.25 173.39/119.25 (3) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Neg(Succ(x2270)) & Pos(Zero)=Pos(x2269) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) 173.39/119.25 173.39/119.25 (4) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Pos(Succ(x2271)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (5) (Zero=x2272 & x1759=x2273 & Zero=x2274 & new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) which results in the following new constraints: 173.39/119.25 173.39/119.25 (6) (new_primModNatS01(x2277, x2276)=Succ(x2270) & Zero=x2276 & x2277=Succ(x2275) & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2277))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2277))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2277, Zero, x2277, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2277, Zero, x2277, Zero)))) 173.39/119.25 173.39/119.25 (7) (new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2270) & Zero=x2280 & x2281=Succ(x2279) & Zero=Succ(x2278) & (\/x2282,x2283:new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2282) & Zero=x2280 & x2281=x2279 & Zero=x2278 ==> new_quot1(x2283, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x2283, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) 173.39/119.25 173.39/119.25 (8) (new_primModNatS01(x2285, x2284)=Succ(x2270) & Zero=x2284 & x2285=Zero & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2285))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2285))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2285, Zero, x2285, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2285, Zero, x2285, Zero)))) 173.39/119.25 173.39/119.25 (9) (Succ(Succ(x2288))=Succ(x2270) & Zero=x2287 & x2288=Zero & Zero=Succ(x2286) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2288))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2288))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2288, Zero, x2288, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2288, Zero, x2288, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (10) (Succ(x2275)=x2289 & new_primModNatS01(x2289, x2276)=Succ(x2270) & Zero=x2276 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (11) (Zero=x2296 & new_primModNatS01(x2296, x2284)=Succ(x2270) & Zero=x2284 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2289, x2276)=Succ(x2270) which results in the following new constraint: 173.39/119.25 173.39/119.25 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2291), Succ(x2290)), Succ(x2290))=Succ(x2270) & Succ(x2275)=x2291 & Zero=x2290 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (13) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2296, x2284)=Succ(x2270) which results in the following new constraint: 173.39/119.25 173.39/119.25 (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2298), Succ(x2297)), Succ(x2297))=Succ(x2270) & Zero=x2298 & Zero=x2297 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.25 173.39/119.25 (15) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: 173.39/119.25 *We consider the chain new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1820, False, x1821, x1822) -> new_quot1(x1820, x1821, x1822, Integer(Pos(Zero)), x1821) which results in the following constraint: 173.39/119.25 173.39/119.25 (1) (new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1820, False, x1821, x1822) ==> new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.25 173.39/119.25 (2) (new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 To summarize, we get the following constraints P__>=_ for the following pairs. 173.39/119.25 173.39/119.25 *new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.25 173.39/119.25 *(new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.25 173.39/119.25 *(new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.25 173.39/119.25 *(new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.25 173.39/119.25 *(new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.25 173.39/119.25 *(new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 173.39/119.25 *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.25 173.39/119.25 *(new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 173.39/119.25 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. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (648) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) 173.39/119.25 new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.25 new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.25 new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (649) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_quot0(vuz236, vuz237, Succ(vuz2380), Succ(vuz2390)) -> new_quot0(vuz236, vuz237, vuz2380, vuz2390) 173.39/119.25 173.39/119.25 R is empty. 173.39/119.25 Q is empty. 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (650) QDPSizeChangeProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 173.39/119.25 From the DPs we obtained the following set of size-change graphs: 173.39/119.25 *new_quot0(vuz236, vuz237, Succ(vuz2380), Succ(vuz2390)) -> new_quot0(vuz236, vuz237, vuz2380, vuz2390) 173.39/119.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (651) 173.39/119.25 YES 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (652) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_signumReal1(vuz198, Succ(vuz1990), Succ(vuz2000), h) -> new_signumReal1(vuz198, vuz1990, vuz2000, h) 173.39/119.25 173.39/119.25 R is empty. 173.39/119.25 Q is empty. 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (653) QDPSizeChangeProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 173.39/119.25 From the DPs we obtained the following set of size-change graphs: 173.39/119.25 *new_signumReal1(vuz198, Succ(vuz1990), Succ(vuz2000), h) -> new_signumReal1(vuz198, vuz1990, vuz2000, h) 173.39/119.25 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (654) 173.39/119.25 YES 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (655) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_signumReal11(vuz138, Succ(vuz1390), Succ(vuz1400), h) -> new_signumReal11(vuz138, vuz1390, vuz1400, h) 173.39/119.25 173.39/119.25 R is empty. 173.39/119.25 Q is empty. 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (656) QDPSizeChangeProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 173.39/119.25 From the DPs we obtained the following set of size-change graphs: 173.39/119.25 *new_signumReal11(vuz138, Succ(vuz1390), Succ(vuz1400), h) -> new_signumReal11(vuz138, vuz1390, vuz1400, h) 173.39/119.25 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (657) 173.39/119.25 YES 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (658) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_quot(vuz241, vuz242, Succ(vuz2430), Succ(vuz2440)) -> new_quot(vuz241, vuz242, vuz2430, vuz2440) 173.39/119.25 173.39/119.25 R is empty. 173.39/119.25 Q is empty. 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (659) QDPSizeChangeProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 173.39/119.25 From the DPs we obtained the following set of size-change graphs: 173.39/119.25 *new_quot(vuz241, vuz242, Succ(vuz2430), Succ(vuz2440)) -> new_quot(vuz241, vuz242, vuz2430, vuz2440) 173.39/119.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (660) 173.39/119.25 YES 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (661) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_esEs(vuz101, vuz100) -> new_primEqInt(vuz101, vuz100) 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_esEs(x0, x1) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (662) TransformationProof (EQUIVALENT) 173.39/119.25 By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.25 173.39/119.25 (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90)) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (663) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_esEs(vuz101, vuz100) -> new_primEqInt(vuz101, vuz100) 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_esEs(x0, x1) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (664) UsableRulesProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (665) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_esEs(x0, x1) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (666) QReductionProof (EQUIVALENT) 173.39/119.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.25 173.39/119.25 new_esEs(x0, x1) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (667) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (668) TransformationProof (EQUIVALENT) 173.39/119.25 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.25 173.39/119.25 (new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)),new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116))) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (669) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (670) TransformationProof (EQUIVALENT) 173.39/119.25 By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0,0] we obtained the following new rules [LPAR04]: 173.39/119.25 173.39/119.25 (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90)) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (671) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (672) UsableRulesProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (673) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_rem(x0, x1) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (674) QReductionProof (EQUIVALENT) 173.39/119.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.25 173.39/119.25 new_rem(x0, x1) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (675) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (676) TransformationProof (EQUIVALENT) 173.39/119.25 By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0,1] we obtained the following new rules [LPAR04]: 173.39/119.25 173.39/119.25 (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90)) 173.39/119.25 173.39/119.25 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (677) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_fromInt -> Pos(Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqNat0(Zero, Zero) -> True 173.39/119.25 new_primEqNat0(Succ(vuz16000), Zero) -> False 173.39/119.25 new_primEqNat0(Zero, Succ(vuz47000)) -> False 173.39/119.25 new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (678) UsableRulesProof (EQUIVALENT) 173.39/119.25 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. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (679) 173.39/119.25 Obligation: 173.39/119.25 Q DP problem: 173.39/119.25 The TRS P consists of the following rules: 173.39/119.25 173.39/119.25 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.25 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 173.39/119.25 173.39/119.25 The TRS R consists of the following rules: 173.39/119.25 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.25 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.25 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.25 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.25 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.25 new_error -> error([]) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.25 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.25 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.25 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.25 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.25 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.25 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.25 new_primMinusNatS1 -> Zero 173.39/119.25 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.25 173.39/119.25 The set Q consists of the following terms: 173.39/119.25 173.39/119.25 new_primMinusNatS0(x0) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.25 new_primEqNat0(Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.25 new_primModNatS01(x0, x1) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.25 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.25 new_primMinusNatS1 173.39/119.25 new_primEqNat0(Zero, Succ(x0)) 173.39/119.25 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.25 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.25 new_primMinusNatS2(Zero, Zero) 173.39/119.25 new_primModNatS1(Zero, x0) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.25 new_error 173.39/119.25 new_primModNatS1(Succ(Zero), Zero) 173.39/119.25 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.25 new_primEqNat0(Succ(x0), Zero) 173.39/119.25 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.25 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.25 new_fromInt 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.25 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.25 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.25 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.25 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.25 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.25 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.25 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.25 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.25 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.25 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.25 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.25 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.25 173.39/119.25 We have to consider all minimal (P,Q,R)-chains. 173.39/119.25 ---------------------------------------- 173.39/119.25 173.39/119.25 (680) QReductionProof (EQUIVALENT) 173.39/119.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.26 173.39/119.26 new_primEqNat0(Zero, Zero) 173.39/119.26 new_primEqNat0(Zero, Succ(x0)) 173.39/119.26 new_primEqNat0(Succ(x0), Zero) 173.39/119.26 new_fromInt 173.39/119.26 new_primEqNat0(Succ(x0), Succ(x1)) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (681) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (682) InductionCalculusProof (EQUIVALENT) 173.39/119.26 Note that final constraints are written in bold face. 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 For Pair new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) the following chains were created: 173.39/119.26 *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'0(x2, new_primRemInt(x3, x2)), new_gcd0Gcd'0(x4, x5) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x4, x5), Pos(Zero)), x5, x4) which results in the following constraint: 173.39/119.26 173.39/119.26 (1) (new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))=new_gcd0Gcd'0(x4, x5) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (2) (new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 For Pair new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) the following chains were created: 173.39/119.26 *We consider the chain new_gcd0Gcd'0(x6, x7) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6), new_gcd0Gcd'1(False, x8, x9) -> new_gcd0Gcd'0(x8, new_primRemInt(x9, x8)) which results in the following constraint: 173.39/119.26 173.39/119.26 (1) (new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)=new_gcd0Gcd'1(False, x8, x9) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (2) (new_primRemInt(x6, x7)=x12 & Pos(Zero)=x13 & new_primEqInt(x12, x13)=False ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x12, x13)=False which results in the following new constraints: 173.39/119.26 173.39/119.26 (3) (False=False & new_primRemInt(x6, x7)=Pos(Succ(x14)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 (4) (False=False & new_primRemInt(x6, x7)=Neg(Succ(x16)) & Pos(Zero)=Pos(x15) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (3) using rules (I), (II) which results in the following new constraint: 173.39/119.26 173.39/119.26 (5) (new_primRemInt(x6, x7)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (6) (new_primRemInt(x6, x7)=Neg(Succ(x16)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Pos(Succ(x14)) which results in the following new constraints: 173.39/119.26 173.39/119.26 (7) (Pos(new_primModNatS1(x18, x17))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) 173.39/119.26 173.39/119.26 (8) (Pos(new_primModNatS1(x20, x19))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) 173.39/119.26 173.39/119.26 (9) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x21), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x21), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x21))) 173.39/119.26 173.39/119.26 (10) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x24), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x24), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x24))) 173.39/119.26 173.39/119.26 (11) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x27), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x27))) 173.39/119.26 173.39/119.26 (12) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x28), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x28), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x28))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (7) using rules (I), (II) which results in the following new constraint: 173.39/119.26 173.39/119.26 (13) (new_primModNatS1(x18, x17)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (8) using rules (I), (II) which results in the following new constraint: 173.39/119.26 173.39/119.26 (14) (new_primModNatS1(x20, x19)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x18, x17)=Succ(x14) which results in the following new constraints: 173.39/119.26 173.39/119.26 (15) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 (16) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 (17) (new_primModNatS1(new_primMinusNatS0(x31), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) 173.39/119.26 173.39/119.26 (18) (new_primModNatS02(x33, x32, x33, x32)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32)))), Pos(Zero)), Neg(Succ(Succ(x32))), Pos(Succ(Succ(x33))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (19) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (20) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (21) (new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (22) (new_gcd0Gcd'0(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39)))), Pos(Zero)), Neg(Succ(Succ(x39))), Pos(Succ(Succ(x38))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x19)=Succ(x14) which results in the following new constraints: 173.39/119.26 173.39/119.26 (23) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 (24) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 (25) (new_primModNatS1(new_primMinusNatS0(x42), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) 173.39/119.26 173.39/119.26 (26) (new_primModNatS02(x44, x43, x44, x43)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x44))), Pos(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Pos(Succ(Succ(x43)))), Pos(Zero)), Pos(Succ(Succ(x43))), Pos(Succ(Succ(x44))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (27) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (28) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (29) (new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (30) (new_gcd0Gcd'0(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Neg(Succ(x16)) which results in the following new constraints: 173.39/119.26 173.39/119.26 (31) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x55), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x55), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x55))) 173.39/119.26 173.39/119.26 (32) (Neg(new_primModNatS1(x57, x56))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x57), Pos(Succ(x56)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x57), Pos(Succ(x56))), Pos(Zero)), Pos(Succ(x56)), Neg(x57))) 173.39/119.26 173.39/119.26 (33) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x58), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x58), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x58))) 173.39/119.26 173.39/119.26 (34) (Neg(new_primModNatS1(x60, x59))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x60), Neg(Succ(x59)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x60), Neg(Succ(x59))), Pos(Zero)), Neg(Succ(x59)), Neg(x60))) 173.39/119.26 173.39/119.26 (35) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x61), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x61), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x61))) 173.39/119.26 173.39/119.26 (36) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x62), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x62), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x62))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: 173.39/119.26 173.39/119.26 (37) (new_primModNatS1(x57, x56)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x57), Pos(Succ(x56)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x57), Pos(Succ(x56))), Pos(Zero)), Pos(Succ(x56)), Neg(x57))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: 173.39/119.26 173.39/119.26 (38) (new_primModNatS1(x60, x59)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x60), Neg(Succ(x59)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x60), Neg(Succ(x59))), Pos(Zero)), Neg(Succ(x59)), Neg(x60))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x57, x56)=Succ(x16) which results in the following new constraints: 173.39/119.26 173.39/119.26 (39) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 (40) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 (41) (new_primModNatS1(new_primMinusNatS0(x65), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) 173.39/119.26 173.39/119.26 (42) (new_primModNatS02(x67, x66, x67, x66)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Pos(Succ(Succ(x66))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x67))), Pos(Succ(Succ(x66)))), Pos(Zero)), Pos(Succ(Succ(x66))), Neg(Succ(Succ(x67))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (43) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (44) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (45) (new_gcd0Gcd'0(Neg(Succ(Succ(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (46) (new_gcd0Gcd'0(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73)))), Pos(Zero)), Pos(Succ(Succ(x73))), Neg(Succ(Succ(x72))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x60, x59)=Succ(x16) which results in the following new constraints: 173.39/119.26 173.39/119.26 (47) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 (48) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 (49) (new_primModNatS1(new_primMinusNatS0(x76), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) 173.39/119.26 173.39/119.26 (50) (new_primModNatS02(x78, x77, x78, x77)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x78))), Neg(Succ(Succ(x77))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Neg(Succ(Succ(x77)))), Pos(Zero)), Neg(Succ(Succ(x77))), Neg(Succ(Succ(x78))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.26 173.39/119.26 (51) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (52) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (53) (new_gcd0Gcd'0(Neg(Succ(Succ(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.26 173.39/119.26 (54) (new_gcd0Gcd'0(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84)))), Pos(Zero)), Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 To summarize, we get the following constraints P__>=_ for the following pairs. 173.39/119.26 173.39/119.26 *new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 *new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39)))), Pos(Zero)), Neg(Succ(Succ(x39))), Pos(Succ(Succ(x38))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Succ(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73)))), Pos(Zero)), Pos(Succ(Succ(x73))), Neg(Succ(Succ(x72))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Succ(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) 173.39/119.26 173.39/119.26 173.39/119.26 *(new_gcd0Gcd'0(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84)))), Pos(Zero)), Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))))) 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 173.39/119.26 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. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (683) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (684) TransformationProof (EQUIVALENT) 173.39/119.26 By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0))) 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0))) 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0))) 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0))) 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0))) 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0))) 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0))) 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (685) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (686) TransformationProof (EQUIVALENT) 173.39/119.26 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (687) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (688) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (689) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (690) TransformationProof (EQUIVALENT) 173.39/119.26 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (691) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (692) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (693) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (694) TransformationProof (EQUIVALENT) 173.39/119.26 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (695) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (696) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (697) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (698) TransformationProof (EQUIVALENT) 173.39/119.26 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (699) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (700) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (701) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (702) TransformationProof (EQUIVALENT) 173.39/119.26 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) at position [1] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) 173.39/119.26 (new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) 173.39/119.26 (new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) 173.39/119.26 (new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) 173.39/119.26 (new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (703) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) 173.39/119.26 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) 173.39/119.26 new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (704) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (705) 173.39/119.26 Complex Obligation (AND) 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (706) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.26 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.26 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.26 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_error -> error([]) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (707) UsableRulesProof (EQUIVALENT) 173.39/119.26 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. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (708) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_error 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (709) QReductionProof (EQUIVALENT) 173.39/119.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.26 173.39/119.26 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.26 new_error 173.39/119.26 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.26 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.26 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (710) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (711) TransformationProof (EQUIVALENT) 173.39/119.26 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (712) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (713) DependencyGraphProof (EQUIVALENT) 173.39/119.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (714) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.26 173.39/119.26 We have to consider all minimal (P,Q,R)-chains. 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (715) TransformationProof (EQUIVALENT) 173.39/119.26 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.26 173.39/119.26 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.26 173.39/119.26 173.39/119.26 ---------------------------------------- 173.39/119.26 173.39/119.26 (716) 173.39/119.26 Obligation: 173.39/119.26 Q DP problem: 173.39/119.26 The TRS P consists of the following rules: 173.39/119.26 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.26 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.26 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.26 173.39/119.26 The TRS R consists of the following rules: 173.39/119.26 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.26 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.26 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.26 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.26 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.26 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.26 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.26 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.26 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.26 new_primMinusNatS1 -> Zero 173.39/119.26 173.39/119.26 The set Q consists of the following terms: 173.39/119.26 173.39/119.26 new_primMinusNatS0(x0) 173.39/119.26 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.26 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.26 new_primModNatS01(x0, x1) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.26 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.26 new_primMinusNatS1 173.39/119.26 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.26 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.26 new_primMinusNatS2(Zero, Zero) 173.39/119.26 new_primModNatS1(Zero, x0) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.26 new_primModNatS1(Succ(Zero), Zero) 173.39/119.26 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.26 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.26 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.26 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.26 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.26 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.26 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.26 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (717) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (718) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (719) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (720) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (721) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (722) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (723) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (724) 173.39/119.27 Complex Obligation (AND) 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (725) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (726) UsableRulesProof (EQUIVALENT) 173.39/119.27 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. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (727) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (728) QReductionProof (EQUIVALENT) 173.39/119.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.27 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (729) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (730) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (731) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (732) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (733) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (734) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (735) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (736) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (737) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (738) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (739) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (740) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (741) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (742) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (743) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (744) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (745) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (746) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (747) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (748) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (749) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (750) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (751) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (752) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (753) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (754) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (755) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (756) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (757) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (758) DependencyGraphProof (EQUIVALENT) 173.39/119.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (759) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (760) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (761) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (762) QDPSizeChangeProof (EQUIVALENT) 173.39/119.27 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 173.39/119.27 173.39/119.27 Order:Polynomial interpretation [POLO]: 173.39/119.27 173.39/119.27 POL(False) = 1 173.39/119.27 POL(Neg(x_1)) = x_1 173.39/119.27 POL(Succ(x_1)) = 1 + x_1 173.39/119.27 POL(Zero) = 1 173.39/119.27 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.39/119.27 POL(new_primMinusNatS1) = 1 173.39/119.27 POL(new_primModNatS1(x_1, x_2)) = x_1 173.39/119.27 173.39/119.27 173.39/119.27 173.39/119.27 173.39/119.27 From the DPs we obtained the following set of size-change graphs: 173.39/119.27 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) 173.39/119.27 The graph contains the following edges 2 >= 2, 1 >= 3 173.39/119.27 173.39/119.27 173.39/119.27 *new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {2, 3}) 173.39/119.27 The graph contains the following edges 2 >= 2, 1 >= 3 173.39/119.27 173.39/119.27 173.39/119.27 *new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {1, 2}) 173.39/119.27 The graph contains the following edges 2 >= 1, 3 >= 2 173.39/119.27 173.39/119.27 173.39/119.27 *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) 173.39/119.27 The graph contains the following edges 2 >= 1, 3 > 2 173.39/119.27 173.39/119.27 173.39/119.27 173.39/119.27 We oriented the following set of usable rules [AAECC05,FROCOS05]. 173.39/119.27 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (763) 173.39/119.27 YES 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (764) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.27 new_primMinusNatS1 -> Zero 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (765) UsableRulesProof (EQUIVALENT) 173.39/119.27 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. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (766) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primMinusNatS1 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (767) QReductionProof (EQUIVALENT) 173.39/119.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.27 173.39/119.27 new_primMinusNatS0(x0) 173.39/119.27 new_primMinusNatS1 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (768) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (769) TransformationProof (EQUIVALENT) 173.39/119.27 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (770) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (771) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (772) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (773) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (774) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (775) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (776) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (777) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (778) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.27 new_primModNatS1(Zero, x0) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.27 new_primModNatS1(Succ(Zero), Zero) 173.39/119.27 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.27 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.27 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.27 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.27 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.27 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.27 173.39/119.27 We have to consider all minimal (P,Q,R)-chains. 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (779) TransformationProof (EQUIVALENT) 173.39/119.27 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.27 173.39/119.27 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.39/119.27 173.39/119.27 173.39/119.27 ---------------------------------------- 173.39/119.27 173.39/119.27 (780) 173.39/119.27 Obligation: 173.39/119.27 Q DP problem: 173.39/119.27 The TRS P consists of the following rules: 173.39/119.27 173.39/119.27 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.27 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.27 173.39/119.27 The TRS R consists of the following rules: 173.39/119.27 173.39/119.27 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.27 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.27 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.27 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.27 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.27 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.27 173.39/119.27 The set Q consists of the following terms: 173.39/119.27 173.39/119.27 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.27 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.27 new_primModNatS01(x0, x1) 173.39/119.27 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.27 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.27 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.27 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.27 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.27 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (781) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (782) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (783) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (784) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (785) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (786) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (787) DependencyGraphProof (EQUIVALENT) 173.39/119.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (788) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (789) TransformationProof (EQUIVALENT) 173.39/119.28 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (790) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (791) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (792) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (793) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (794) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (795) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (796) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (797) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (798) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (799) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (800) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (801) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (802) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (803) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (804) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (805) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (806) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (807) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (808) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (809) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (810) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (811) DependencyGraphProof (EQUIVALENT) 173.39/119.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (812) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (813) TransformationProof (EQUIVALENT) 173.39/119.28 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (814) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (815) DependencyGraphProof (EQUIVALENT) 173.39/119.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (816) 173.39/119.28 Complex Obligation (AND) 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (817) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (818) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (819) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (820) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (821) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (822) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (823) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (824) TransformationProof (EQUIVALENT) 173.39/119.28 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (825) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (826) TransformationProof (EQUIVALENT) 173.39/119.28 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (827) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (828) TransformationProof (EQUIVALENT) 173.39/119.28 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.28 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) 173.39/119.28 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (829) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (830) DependencyGraphProof (EQUIVALENT) 173.39/119.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (831) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (832) QDPOrderProof (EQUIVALENT) 173.39/119.28 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.28 173.39/119.28 173.39/119.28 The following pairs can be oriented strictly and are deleted. 173.39/119.28 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.28 The remaining pairs can at least be oriented weakly. 173.39/119.28 Used ordering: Polynomial interpretation [POLO]: 173.39/119.28 173.39/119.28 POL(False) = 0 173.39/119.28 POL(Neg(x_1)) = 2*x_1 173.39/119.28 POL(Pos(x_1)) = 0 173.39/119.28 POL(Succ(x_1)) = 1 + x_1 173.39/119.28 POL(True) = 3 173.39/119.28 POL(Zero) = 2 173.39/119.28 POL(new_gcd0Gcd'0(x_1, x_2)) = 3*x_1 + 3*x_2 173.39/119.28 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 3*x_2 + 3*x_3 173.39/119.28 POL(new_primEqInt(x_1, x_2)) = 0 173.39/119.28 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.39/119.28 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 173.39/119.28 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 173.39/119.28 POL(new_primModNatS1(x_1, x_2)) = x_1 173.39/119.28 173.39/119.28 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.28 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (833) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.28 173.39/119.28 We have to consider all minimal (P,Q,R)-chains. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (834) DependencyGraphProof (EQUIVALENT) 173.39/119.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (835) 173.39/119.28 TRUE 173.39/119.28 173.39/119.28 ---------------------------------------- 173.39/119.28 173.39/119.28 (836) 173.39/119.28 Obligation: 173.39/119.28 Q DP problem: 173.39/119.28 The TRS P consists of the following rules: 173.39/119.28 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.28 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.28 173.39/119.28 The TRS R consists of the following rules: 173.39/119.28 173.39/119.28 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.28 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.28 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.28 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.28 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.28 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.28 173.39/119.28 The set Q consists of the following terms: 173.39/119.28 173.39/119.28 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.28 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.28 new_primModNatS01(x0, x1) 173.39/119.28 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.28 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.28 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.28 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.28 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.28 new_primMinusNatS2(Zero, Zero) 173.39/119.28 new_primModNatS1(Zero, x0) 173.39/119.28 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.28 new_primModNatS1(Succ(Zero), Zero) 173.39/119.28 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.28 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.28 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.28 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.28 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (837) TransformationProof (EQUIVALENT) 173.39/119.29 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (838) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (839) DependencyGraphProof (EQUIVALENT) 173.39/119.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (840) 173.39/119.29 Complex Obligation (AND) 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (841) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (842) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (843) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (844) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (845) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (846) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (847) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (848) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (849) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (850) QDPOrderProof (EQUIVALENT) 173.39/119.29 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.29 173.39/119.29 173.39/119.29 The following pairs can be oriented strictly and are deleted. 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.29 The remaining pairs can at least be oriented weakly. 173.39/119.29 Used ordering: Polynomial interpretation [POLO]: 173.39/119.29 173.39/119.29 POL(False) = 0 173.39/119.29 POL(Neg(x_1)) = 2*x_1 173.39/119.29 POL(Pos(x_1)) = 0 173.39/119.29 POL(Succ(x_1)) = 1 + x_1 173.39/119.29 POL(True) = 3 173.39/119.29 POL(Zero) = 0 173.39/119.29 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 173.39/119.29 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 173.39/119.29 POL(new_primEqInt(x_1, x_2)) = 0 173.39/119.29 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.39/119.29 POL(new_primModNatS01(x_1, x_2)) = 3 + x_1 173.39/119.29 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 3 + x_1 173.39/119.29 POL(new_primModNatS1(x_1, x_2)) = 2 + x_1 173.39/119.29 173.39/119.29 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.29 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (851) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (852) DependencyGraphProof (EQUIVALENT) 173.39/119.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (853) 173.39/119.29 TRUE 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (854) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (855) InductionCalculusProof (EQUIVALENT) 173.39/119.29 Note that final constraints are written in bold face. 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.29 *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Neg(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: 173.39/119.29 173.39/119.29 (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.39/119.29 173.39/119.29 (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.29 173.39/119.29 (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x17))))), Neg(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x17))))), Neg(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) 173.39/119.29 173.39/119.29 (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.29 173.39/119.29 (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.39/119.29 173.39/119.29 (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (4) using rule (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.39/119.29 173.39/119.29 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.39/119.29 173.39/119.29 (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.29 173.39/119.29 (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.29 173.39/119.29 (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.29 173.39/119.29 (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: 173.39/119.29 *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: 173.39/119.29 173.39/119.29 (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (2) (Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: 173.39/119.29 173.39/119.29 (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Neg(Succ(x55)) & Pos(Zero)=Pos(x54) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (4) (Succ(Succ(x6))=x56 & Succ(Succ(x7))=x57 & new_primModNatS02(x56, x57, x6, x7)=Succ(x55) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x56, x57, x6, x7)=Succ(x55) which results in the following new constraints: 173.39/119.29 173.39/119.29 (5) (new_primModNatS01(x60, x59)=Succ(x55) & Succ(Succ(Succ(x58)))=x60 & Succ(Succ(Zero))=x59 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) 173.39/119.29 173.39/119.29 (6) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 & (\/x65:new_primModNatS02(x64, x63, x62, x61)=Succ(x65) & Succ(Succ(x62))=x64 & Succ(Succ(x61))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x62))))), Neg(Succ(Succ(Succ(Succ(x61))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x62)), Succ(Succ(x61)), x62, x61)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x61))))), Neg(Succ(Succ(Succ(Succ(x62))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) 173.39/119.29 173.39/119.29 (7) (new_primModNatS01(x67, x66)=Succ(x55) & Succ(Succ(Zero))=x67 & Succ(Succ(Zero))=x66 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 (8) (Succ(Succ(x70))=Succ(x55) & Succ(Succ(Zero))=x70 & Succ(Succ(Succ(x68)))=x69 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x60, x59)=Succ(x55) which results in the following new constraint: 173.39/119.29 173.39/119.29 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x72), Succ(x71)), Succ(x71))=Succ(x55) & Succ(Succ(Succ(x58)))=x72 & Succ(Succ(Zero))=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (6) using rule (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (10) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x67, x66)=Succ(x55) which results in the following new constraint: 173.39/119.29 173.39/119.29 (11) (new_primModNatS1(new_primMinusNatS2(Succ(x91), Succ(x90)), Succ(x90))=Succ(x55) & Succ(Succ(Zero))=x91 & Succ(Succ(Zero))=x90 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x64, x63, x62, x61)=Succ(x55) which results in the following new constraints: 173.39/119.29 173.39/119.29 (14) (new_primModNatS01(x79, x78)=Succ(x55) & Succ(Succ(Succ(Succ(x77))))=x79 & Succ(Succ(Succ(Zero)))=x78 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) 173.39/119.29 173.39/119.29 (15) (new_primModNatS02(x83, x82, x81, x80)=Succ(x55) & Succ(Succ(Succ(Succ(x81))))=x83 & Succ(Succ(Succ(Succ(x80))))=x82 & (\/x84:new_primModNatS02(x83, x82, x81, x80)=Succ(x84) & Succ(Succ(Succ(x81)))=x83 & Succ(Succ(Succ(x80)))=x82 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x81)))))), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x81))), Succ(Succ(Succ(x80))), Succ(x81), Succ(x80))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))), Neg(Succ(Succ(Succ(Succ(Succ(x81)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) 173.39/119.29 173.39/119.29 (16) (new_primModNatS01(x86, x85)=Succ(x55) & Succ(Succ(Succ(Zero)))=x86 & Succ(Succ(Succ(Zero)))=x85 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 (17) (Succ(Succ(x89))=Succ(x55) & Succ(Succ(Succ(Zero)))=x89 & Succ(Succ(Succ(Succ(x87))))=x88 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.29 173.39/119.29 (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.29 173.39/119.29 (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 To summarize, we get the following constraints P__>=_ for the following pairs. 173.39/119.29 173.39/119.29 *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.29 173.39/119.29 173.39/119.29 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 173.39/119.29 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. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (856) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.29 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (857) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.29 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.29 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.29 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.29 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.29 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.29 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.29 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.29 new_error -> error([]) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_error 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (858) UsableRulesProof (EQUIVALENT) 173.39/119.29 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. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (859) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_error 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (860) QReductionProof (EQUIVALENT) 173.39/119.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.29 173.39/119.29 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.29 new_error 173.39/119.29 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.29 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.29 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.29 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (861) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (862) TransformationProof (EQUIVALENT) 173.39/119.29 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero))) 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (863) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (864) DependencyGraphProof (EQUIVALENT) 173.39/119.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (865) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (866) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (867) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (868) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (869) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (870) DependencyGraphProof (EQUIVALENT) 173.39/119.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (871) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (872) TransformationProof (EQUIVALENT) 173.39/119.29 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.39/119.29 (new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero))) 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (873) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (874) DependencyGraphProof (EQUIVALENT) 173.39/119.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (875) 173.39/119.29 Complex Obligation (AND) 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (876) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.29 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.29 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.29 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (877) UsableRulesProof (EQUIVALENT) 173.39/119.29 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. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (878) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (879) QReductionProof (EQUIVALENT) 173.39/119.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.29 173.39/119.29 new_primModNatS01(x0, x1) 173.39/119.29 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.29 new_primMinusNatS2(Zero, Zero) 173.39/119.29 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.29 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.29 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.29 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (880) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (881) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (882) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (883) TransformationProof (EQUIVALENT) 173.39/119.29 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.29 173.39/119.29 (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.39/119.29 173.39/119.29 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (884) 173.39/119.29 Obligation: 173.39/119.29 Q DP problem: 173.39/119.29 The TRS P consists of the following rules: 173.39/119.29 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.29 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.29 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.29 173.39/119.29 The TRS R consists of the following rules: 173.39/119.29 173.39/119.29 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.29 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.29 new_primMinusNatS1 -> Zero 173.39/119.29 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.29 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.29 173.39/119.29 The set Q consists of the following terms: 173.39/119.29 173.39/119.29 new_primMinusNatS0(x0) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.29 new_primMinusNatS1 173.39/119.29 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.29 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.29 new_primModNatS1(Zero, x0) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.29 new_primModNatS1(Succ(Zero), Zero) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.29 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.29 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.29 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.29 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.29 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.29 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.29 173.39/119.29 We have to consider all minimal (P,Q,R)-chains. 173.39/119.29 ---------------------------------------- 173.39/119.29 173.39/119.29 (885) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (886) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (887) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (888) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (889) DependencyGraphProof (EQUIVALENT) 173.39/119.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (890) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (891) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (892) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (893) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (894) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (895) DependencyGraphProof (EQUIVALENT) 173.39/119.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (896) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (897) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (898) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (899) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (900) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (901) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (902) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (903) DependencyGraphProof (EQUIVALENT) 173.39/119.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (904) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (905) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (906) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (907) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (908) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (909) DependencyGraphProof (EQUIVALENT) 173.39/119.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (910) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (911) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (912) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (913) QDPSizeChangeProof (EQUIVALENT) 173.39/119.30 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 173.39/119.30 173.39/119.30 Order:Polynomial interpretation [POLO]: 173.39/119.30 173.39/119.30 POL(False) = 1 173.39/119.30 POL(Pos(x_1)) = x_1 173.39/119.30 POL(Succ(x_1)) = 1 + x_1 173.39/119.30 POL(Zero) = 1 173.39/119.30 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.39/119.30 POL(new_primMinusNatS1) = 1 173.39/119.30 POL(new_primModNatS1(x_1, x_2)) = x_1 173.39/119.30 173.39/119.30 173.39/119.30 173.39/119.30 173.39/119.30 From the DPs we obtained the following set of size-change graphs: 173.39/119.30 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) 173.39/119.30 The graph contains the following edges 2 >= 2, 1 >= 3 173.39/119.30 173.39/119.30 173.39/119.30 *new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) 173.39/119.30 The graph contains the following edges 2 >= 2, 1 >= 3 173.39/119.30 173.39/119.30 173.39/119.30 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) 173.39/119.30 The graph contains the following edges 2 >= 1, 3 >= 2 173.39/119.30 173.39/119.30 173.39/119.30 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) 173.39/119.30 The graph contains the following edges 2 >= 1, 3 > 2 173.39/119.30 173.39/119.30 173.39/119.30 173.39/119.30 We oriented the following set of usable rules [AAECC05,FROCOS05]. 173.39/119.30 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (914) 173.39/119.30 YES 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (915) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.30 new_primMinusNatS1 -> Zero 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (916) UsableRulesProof (EQUIVALENT) 173.39/119.30 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. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (917) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primMinusNatS1 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (918) QReductionProof (EQUIVALENT) 173.39/119.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.39/119.30 173.39/119.30 new_primMinusNatS0(x0) 173.39/119.30 new_primMinusNatS1 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (919) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (920) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (921) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (922) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (923) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (924) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (925) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (926) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (927) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (928) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (929) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (930) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (931) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (932) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (933) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (934) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (935) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (936) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (937) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (938) DependencyGraphProof (EQUIVALENT) 173.39/119.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (939) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (940) TransformationProof (EQUIVALENT) 173.39/119.30 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (941) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (942) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (943) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (944) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (945) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.30 173.39/119.30 The TRS R consists of the following rules: 173.39/119.30 173.39/119.30 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.30 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.30 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.30 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.30 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.30 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.30 173.39/119.30 The set Q consists of the following terms: 173.39/119.30 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.30 new_primModNatS01(x0, x1) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.30 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.30 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.30 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.30 new_primMinusNatS2(Zero, Zero) 173.39/119.30 new_primModNatS1(Zero, x0) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.30 new_primModNatS1(Succ(Zero), Zero) 173.39/119.30 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.30 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.30 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.30 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.30 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.30 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.30 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.30 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.30 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.30 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.30 173.39/119.30 We have to consider all minimal (P,Q,R)-chains. 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (946) TransformationProof (EQUIVALENT) 173.39/119.30 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.30 173.39/119.30 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.30 173.39/119.30 173.39/119.30 ---------------------------------------- 173.39/119.30 173.39/119.30 (947) 173.39/119.30 Obligation: 173.39/119.30 Q DP problem: 173.39/119.30 The TRS P consists of the following rules: 173.39/119.30 173.39/119.30 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.30 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (948) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (949) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (950) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (951) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (952) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (953) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (954) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (955) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (956) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (957) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (958) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (959) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (960) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (961) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (962) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (963) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (964) TransformationProof (EQUIVALENT) 173.39/119.31 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (965) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (966) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (967) 173.39/119.31 Complex Obligation (AND) 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (968) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (969) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (970) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (971) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (972) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (973) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (974) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (975) TransformationProof (EQUIVALENT) 173.39/119.31 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (976) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (977) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (978) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (979) TransformationProof (EQUIVALENT) 173.39/119.31 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (980) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (981) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (982) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (983) QDPOrderProof (EQUIVALENT) 173.39/119.31 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.31 173.39/119.31 173.39/119.31 The following pairs can be oriented strictly and are deleted. 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.39/119.31 The remaining pairs can at least be oriented weakly. 173.39/119.31 Used ordering: Polynomial interpretation [POLO]: 173.39/119.31 173.39/119.31 POL(False) = 0 173.39/119.31 POL(Pos(x_1)) = 2*x_1 173.39/119.31 POL(Succ(x_1)) = 1 + x_1 173.39/119.31 POL(True) = 3 173.39/119.31 POL(Zero) = 3 173.39/119.31 POL(new_gcd0Gcd'0(x_1, x_2)) = x_1 + x_2 173.39/119.31 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_2 + x_3 173.39/119.31 POL(new_primEqInt(x_1, x_2)) = 0 173.39/119.31 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.39/119.31 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 173.39/119.31 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 173.39/119.31 POL(new_primModNatS1(x_1, x_2)) = x_1 173.39/119.31 173.39/119.31 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.31 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (984) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (985) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (986) 173.39/119.31 TRUE 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (987) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (988) TransformationProof (EQUIVALENT) 173.39/119.31 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (989) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (990) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (991) 173.39/119.31 Complex Obligation (AND) 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (992) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (993) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (994) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (995) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (996) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (997) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (998) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (999) TransformationProof (EQUIVALENT) 173.39/119.31 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.39/119.31 173.39/119.31 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1000) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1001) QDPOrderProof (EQUIVALENT) 173.39/119.31 We use the reduction pair processor [LPAR04,JAR06]. 173.39/119.31 173.39/119.31 173.39/119.31 The following pairs can be oriented strictly and are deleted. 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.39/119.31 The remaining pairs can at least be oriented weakly. 173.39/119.31 Used ordering: Polynomial interpretation [POLO]: 173.39/119.31 173.39/119.31 POL(False) = 0 173.39/119.31 POL(Pos(x_1)) = 2*x_1 173.39/119.31 POL(Succ(x_1)) = 1 + x_1 173.39/119.31 POL(True) = 3 173.39/119.31 POL(Zero) = 0 173.39/119.31 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 173.39/119.31 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 173.39/119.31 POL(new_primEqInt(x_1, x_2)) = 0 173.39/119.31 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.39/119.31 POL(new_primModNatS01(x_1, x_2)) = 2 + x_1 173.39/119.31 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 173.39/119.31 POL(new_primModNatS1(x_1, x_2)) = x_1 173.39/119.31 173.39/119.31 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.39/119.31 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1002) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.31 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.39/119.31 173.39/119.31 The TRS R consists of the following rules: 173.39/119.31 173.39/119.31 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.31 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.31 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.31 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.31 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.31 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.31 173.39/119.31 The set Q consists of the following terms: 173.39/119.31 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.31 new_primModNatS01(x0, x1) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.31 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.31 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.31 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.31 new_primMinusNatS2(Zero, Zero) 173.39/119.31 new_primModNatS1(Zero, x0) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.31 new_primModNatS1(Succ(Zero), Zero) 173.39/119.31 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.31 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.31 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.31 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.31 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.31 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.31 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.31 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.31 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.31 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.31 173.39/119.31 We have to consider all minimal (P,Q,R)-chains. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1003) DependencyGraphProof (EQUIVALENT) 173.39/119.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1004) 173.39/119.31 TRUE 173.39/119.31 173.39/119.31 ---------------------------------------- 173.39/119.31 173.39/119.31 (1005) 173.39/119.31 Obligation: 173.39/119.31 Q DP problem: 173.39/119.31 The TRS P consists of the following rules: 173.39/119.31 173.39/119.31 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.32 173.39/119.32 The TRS R consists of the following rules: 173.39/119.32 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.32 173.39/119.32 The set Q consists of the following terms: 173.39/119.32 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.32 new_primModNatS01(x0, x1) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.32 new_primMinusNatS2(Zero, Zero) 173.39/119.32 new_primModNatS1(Zero, x0) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) 173.39/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.32 173.39/119.32 We have to consider all minimal (P,Q,R)-chains. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1006) QReductionProof (EQUIVALENT) 173.39/119.32 We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. 173.39/119.32 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.32 173.39/119.32 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1007) 173.39/119.32 Obligation: 173.39/119.32 Q DP problem: 173.39/119.32 The TRS P consists of the following rules: 173.39/119.32 173.39/119.32 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.32 173.39/119.32 The TRS R consists of the following rules: 173.39/119.32 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.32 173.39/119.32 The set Q consists of the following terms: 173.39/119.32 173.39/119.32 new_primModNatS01(x0, x1) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.32 new_primMinusNatS2(Zero, Zero) 173.39/119.32 new_primModNatS1(Zero, x0) 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) 173.39/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.32 173.39/119.32 We have to consider all (P,Q,R)-chains. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1008) InductionCalculusProof (EQUIVALENT) 173.39/119.32 Note that final constraints are written in bold face. 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.39/119.32 *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: 173.39/119.32 173.39/119.32 (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.39/119.32 173.39/119.32 (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.32 173.39/119.32 (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x17))))), Pos(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x17))))), Pos(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) 173.39/119.32 173.39/119.32 (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.32 173.39/119.32 (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.39/119.32 173.39/119.32 (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (4) using rule (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.39/119.32 173.39/119.32 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.39/119.32 173.39/119.32 (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.32 173.39/119.32 (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.32 173.39/119.32 (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.32 173.39/119.32 (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: 173.39/119.32 *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: 173.39/119.32 173.39/119.32 (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (2) (Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: 173.39/119.32 173.39/119.32 (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Pos(Succ(x54)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (4) (Succ(Succ(x6))=x55 & Succ(Succ(x7))=x56 & new_primModNatS02(x55, x56, x6, x7)=Succ(x54) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x55, x56, x6, x7)=Succ(x54) which results in the following new constraints: 173.39/119.32 173.39/119.32 (5) (new_primModNatS01(x59, x58)=Succ(x54) & Succ(Succ(Succ(x57)))=x59 & Succ(Succ(Zero))=x58 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) 173.39/119.32 173.39/119.32 (6) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 & (\/x64:new_primModNatS02(x63, x62, x61, x60)=Succ(x64) & Succ(Succ(x61))=x63 & Succ(Succ(x60))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x60))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x61)), Succ(Succ(x60)), x61, x60)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x60))))), Pos(Succ(Succ(Succ(Succ(x61))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) 173.39/119.32 173.39/119.32 (7) (new_primModNatS01(x66, x65)=Succ(x54) & Succ(Succ(Zero))=x66 & Succ(Succ(Zero))=x65 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 (8) (Succ(Succ(x69))=Succ(x54) & Succ(Succ(Zero))=x69 & Succ(Succ(Succ(x67)))=x68 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x59, x58)=Succ(x54) which results in the following new constraint: 173.39/119.32 173.39/119.32 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x71), Succ(x70)), Succ(x70))=Succ(x54) & Succ(Succ(Succ(x57)))=x71 & Succ(Succ(Zero))=x70 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (6) using rule (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (10) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x66, x65)=Succ(x54) which results in the following new constraint: 173.39/119.32 173.39/119.32 (11) (new_primModNatS1(new_primMinusNatS2(Succ(x90), Succ(x89)), Succ(x89))=Succ(x54) & Succ(Succ(Zero))=x90 & Succ(Succ(Zero))=x89 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x63, x62, x61, x60)=Succ(x54) which results in the following new constraints: 173.39/119.32 173.39/119.32 (14) (new_primModNatS01(x78, x77)=Succ(x54) & Succ(Succ(Succ(Succ(x76))))=x78 & Succ(Succ(Succ(Zero)))=x77 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) 173.39/119.32 173.39/119.32 (15) (new_primModNatS02(x82, x81, x80, x79)=Succ(x54) & Succ(Succ(Succ(Succ(x80))))=x82 & Succ(Succ(Succ(Succ(x79))))=x81 & (\/x83:new_primModNatS02(x82, x81, x80, x79)=Succ(x83) & Succ(Succ(Succ(x80)))=x82 & Succ(Succ(Succ(x79)))=x81 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x80)))))), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x80))), Succ(Succ(Succ(x79))), Succ(x80), Succ(x79))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))), Pos(Succ(Succ(Succ(Succ(Succ(x80)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) 173.39/119.32 173.39/119.32 (16) (new_primModNatS01(x85, x84)=Succ(x54) & Succ(Succ(Succ(Zero)))=x85 & Succ(Succ(Succ(Zero)))=x84 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 (17) (Succ(Succ(x88))=Succ(x54) & Succ(Succ(Succ(Zero)))=x88 & Succ(Succ(Succ(Succ(x86))))=x87 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: 173.39/119.32 173.39/119.32 (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: 173.39/119.32 173.39/119.32 (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 To summarize, we get the following constraints P__>=_ for the following pairs. 173.39/119.32 173.39/119.32 *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.39/119.32 173.39/119.32 173.39/119.32 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 173.39/119.32 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. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1009) 173.39/119.32 Obligation: 173.39/119.32 Q DP problem: 173.39/119.32 The TRS P consists of the following rules: 173.39/119.32 173.39/119.32 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.39/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.39/119.32 173.39/119.32 The TRS R consists of the following rules: 173.39/119.32 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.32 173.39/119.32 The set Q consists of the following terms: 173.39/119.32 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.32 new_primModNatS01(x0, x1) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.32 new_primMinusNatS2(Zero, Zero) 173.39/119.32 new_primModNatS1(Zero, x0) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) 173.39/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.32 173.39/119.32 We have to consider all minimal (P,Q,R)-chains. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1010) 173.39/119.32 Obligation: 173.39/119.32 Q DP problem: 173.39/119.32 The TRS P consists of the following rules: 173.39/119.32 173.39/119.32 new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.32 173.39/119.32 The TRS R consists of the following rules: 173.39/119.32 173.39/119.32 new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.32 new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) 173.39/119.32 new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error 173.39/119.32 new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.32 new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error 173.39/119.32 new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) 173.39/119.32 new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error 173.39/119.32 new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.32 new_error -> error([]) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.32 new_primMinusNatS1 -> Zero 173.39/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.32 173.39/119.32 The set Q consists of the following terms: 173.39/119.32 173.39/119.32 new_primMinusNatS0(x0) 173.39/119.32 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.32 new_primModNatS01(x0, x1) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.39/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.39/119.32 new_primMinusNatS1 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.39/119.32 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.39/119.32 new_primMinusNatS2(Zero, Zero) 173.39/119.32 new_primModNatS1(Zero, x0) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.39/119.32 new_error 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) 173.39/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.39/119.32 new_primRemInt(Pos(x0), Pos(Zero)) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.39/119.32 new_primRemInt(Neg(x0), Neg(Zero)) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.39/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.39/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.39/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.39/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.39/119.32 new_primRemInt(Pos(x0), Neg(Zero)) 173.39/119.32 new_primRemInt(Neg(x0), Pos(Zero)) 173.39/119.32 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.39/119.32 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.39/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.39/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.39/119.32 173.39/119.32 We have to consider all minimal (P,Q,R)-chains. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1011) UsableRulesProof (EQUIVALENT) 173.39/119.32 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. 173.39/119.32 ---------------------------------------- 173.39/119.32 173.39/119.32 (1012) 173.39/119.32 Obligation: 173.39/119.32 Q DP problem: 173.39/119.32 The TRS P consists of the following rules: 173.39/119.32 173.39/119.32 new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.39/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.39/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.39/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.39/119.32 173.39/119.32 The TRS R consists of the following rules: 173.39/119.32 173.39/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.39/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.39/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.39/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.39/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.39/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.39/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.39/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.39/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.39/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.39/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.39/119.32 new_primMinusNatS1 -> Zero 173.39/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.39/119.32 173.39/119.32 The set Q consists of the following terms: 173.39/119.32 173.39/119.32 new_primMinusNatS0(x0) 173.39/119.32 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.39/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.39/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.39/119.32 new_primModNatS01(x0, x1) 173.39/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_error 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primRemInt(Pos(x0), Pos(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primRemInt(Neg(x0), Neg(Zero)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primRemInt(Pos(x0), Neg(Zero)) 173.40/119.32 new_primRemInt(Neg(x0), Pos(Zero)) 173.40/119.32 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.40/119.32 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1013) QReductionProof (EQUIVALENT) 173.40/119.32 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.40/119.32 173.40/119.32 new_primRemInt(Pos(x0), Pos(Succ(x1))) 173.40/119.32 new_primRemInt(Neg(x0), Neg(Succ(x1))) 173.40/119.32 new_error 173.40/119.32 new_primRemInt(Pos(x0), Pos(Zero)) 173.40/119.32 new_primRemInt(Neg(x0), Neg(Zero)) 173.40/119.32 new_primRemInt(Pos(x0), Neg(Zero)) 173.40/119.32 new_primRemInt(Neg(x0), Pos(Zero)) 173.40/119.32 new_primRemInt(Pos(x0), Neg(Succ(x1))) 173.40/119.32 new_primRemInt(Neg(x0), Pos(Succ(x1))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1014) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1015) TransformationProof (EQUIVALENT) 173.40/119.32 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero))) 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1016) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1017) DependencyGraphProof (EQUIVALENT) 173.40/119.32 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1018) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1019) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1020) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1021) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1022) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1023) DependencyGraphProof (EQUIVALENT) 173.40/119.32 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1024) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1025) TransformationProof (EQUIVALENT) 173.40/119.32 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.40/119.32 (new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero))) 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1026) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1027) DependencyGraphProof (EQUIVALENT) 173.40/119.32 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1028) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1029) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1030) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1031) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1032) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1033) TransformationProof (EQUIVALENT) 173.40/119.32 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.40/119.32 (new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero))) 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1034) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1035) DependencyGraphProof (EQUIVALENT) 173.40/119.32 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1036) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1037) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1038) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1039) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1040) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1041) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1042) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.32 new_primMinusNatS2(Zero, Zero) 173.40/119.32 new_primModNatS1(Zero, x0) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) 173.40/119.32 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.32 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.32 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.32 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.32 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.32 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.32 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.32 173.40/119.32 We have to consider all minimal (P,Q,R)-chains. 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1043) TransformationProof (EQUIVALENT) 173.40/119.32 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.32 173.40/119.32 (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) 173.40/119.32 173.40/119.32 173.40/119.32 ---------------------------------------- 173.40/119.32 173.40/119.32 (1044) 173.40/119.32 Obligation: 173.40/119.32 Q DP problem: 173.40/119.32 The TRS P consists of the following rules: 173.40/119.32 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.32 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.32 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) 173.40/119.32 173.40/119.32 The TRS R consists of the following rules: 173.40/119.32 173.40/119.32 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.32 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.32 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.32 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.32 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.32 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.32 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.32 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.32 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.32 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.32 new_primMinusNatS1 -> Zero 173.40/119.32 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.32 173.40/119.32 The set Q consists of the following terms: 173.40/119.32 173.40/119.32 new_primMinusNatS0(x0) 173.40/119.32 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.32 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.32 new_primModNatS01(x0, x1) 173.40/119.32 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.32 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.32 new_primMinusNatS1 173.40/119.32 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1045) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1046) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1047) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1048) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1049) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1050) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1051) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1052) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1053) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1054) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1055) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1056) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1057) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1058) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1059) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1060) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1061) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1062) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1063) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero))) 173.40/119.33 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1064) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1065) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1066) 173.40/119.33 Complex Obligation (AND) 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1067) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1068) UsableRulesProof (EQUIVALENT) 173.40/119.33 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. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1069) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1070) QReductionProof (EQUIVALENT) 173.40/119.33 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.40/119.33 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1071) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1072) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1073) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1074) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1075) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1076) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1077) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1078) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1079) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1080) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero))))) 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1081) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1082) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1083) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1084) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1085) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1086) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1087) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1088) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1089) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1090) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1091) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1092) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1093) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1094) TransformationProof (EQUIVALENT) 173.40/119.33 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1095) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1096) DependencyGraphProof (EQUIVALENT) 173.40/119.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1097) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1098) TransformationProof (EQUIVALENT) 173.40/119.33 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.33 173.40/119.33 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.33 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1099) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1100) QDPSizeChangeProof (EQUIVALENT) 173.40/119.33 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 173.40/119.33 173.40/119.33 Order:Polynomial interpretation [POLO]: 173.40/119.33 173.40/119.33 POL(False) = 1 173.40/119.33 POL(Neg(x_1)) = 1 173.40/119.33 POL(Pos(x_1)) = x_1 173.40/119.33 POL(Succ(x_1)) = 1 + x_1 173.40/119.33 POL(Zero) = 1 173.40/119.33 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.40/119.33 POL(new_primMinusNatS1) = 1 173.40/119.33 POL(new_primModNatS1(x_1, x_2)) = x_1 173.40/119.33 173.40/119.33 173.40/119.33 173.40/119.33 173.40/119.33 From the DPs we obtained the following set of size-change graphs: 173.40/119.33 *new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {2, 3}) 173.40/119.33 The graph contains the following edges 2 >= 2, 1 >= 3 173.40/119.33 173.40/119.33 173.40/119.33 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) 173.40/119.33 The graph contains the following edges 2 >= 2, 1 >= 3 173.40/119.33 173.40/119.33 173.40/119.33 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {1, 2}) 173.40/119.33 The graph contains the following edges 2 >= 1, 3 >= 2 173.40/119.33 173.40/119.33 173.40/119.33 *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) 173.40/119.33 The graph contains the following edges 2 >= 1, 3 > 2 173.40/119.33 173.40/119.33 173.40/119.33 173.40/119.33 We oriented the following set of usable rules [AAECC05,FROCOS05]. 173.40/119.33 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1101) 173.40/119.33 YES 173.40/119.33 173.40/119.33 ---------------------------------------- 173.40/119.33 173.40/119.33 (1102) 173.40/119.33 Obligation: 173.40/119.33 Q DP problem: 173.40/119.33 The TRS P consists of the following rules: 173.40/119.33 173.40/119.33 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.33 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.33 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.33 173.40/119.33 The TRS R consists of the following rules: 173.40/119.33 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.33 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.33 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.33 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.33 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.33 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.33 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.33 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.33 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.33 new_primMinusNatS1 -> Zero 173.40/119.33 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.33 173.40/119.33 The set Q consists of the following terms: 173.40/119.33 173.40/119.33 new_primMinusNatS0(x0) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.33 new_primModNatS01(x0, x1) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.33 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.33 new_primMinusNatS1 173.40/119.33 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.33 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.33 new_primMinusNatS2(Zero, Zero) 173.40/119.33 new_primModNatS1(Zero, x0) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.33 new_primModNatS1(Succ(Zero), Zero) 173.40/119.33 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.33 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.33 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.33 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.33 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.33 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.33 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.33 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.33 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.33 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.33 173.40/119.33 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1103) UsableRulesProof (EQUIVALENT) 173.40/119.34 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. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1104) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1105) QReductionProof (EQUIVALENT) 173.40/119.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.40/119.34 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1106) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1107) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1108) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1109) TransformationProof (EQUIVALENT) 173.40/119.34 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1110) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1111) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1112) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1113) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1114) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1115) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1116) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1117) DependencyGraphProof (EQUIVALENT) 173.40/119.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1118) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1119) TransformationProof (EQUIVALENT) 173.40/119.34 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1120) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1121) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1122) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1123) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1124) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1125) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1126) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1127) DependencyGraphProof (EQUIVALENT) 173.40/119.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1128) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1129) TransformationProof (EQUIVALENT) 173.40/119.34 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1130) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1131) DependencyGraphProof (EQUIVALENT) 173.40/119.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1132) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1133) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1134) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1135) TransformationProof (EQUIVALENT) 173.40/119.34 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1136) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1137) DependencyGraphProof (EQUIVALENT) 173.40/119.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1138) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1139) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1140) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1141) QDPSizeChangeProof (EQUIVALENT) 173.40/119.34 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 173.40/119.34 173.40/119.34 Order:Polynomial interpretation [POLO]: 173.40/119.34 173.40/119.34 POL(False) = 1 173.40/119.34 POL(Neg(x_1)) = x_1 173.40/119.34 POL(Pos(x_1)) = 1 173.40/119.34 POL(Succ(x_1)) = 1 + x_1 173.40/119.34 POL(Zero) = 1 173.40/119.34 POL(new_primMinusNatS0(x_1)) = 1 + x_1 173.40/119.34 POL(new_primMinusNatS1) = 1 173.40/119.34 POL(new_primModNatS1(x_1, x_2)) = x_1 173.40/119.34 173.40/119.34 173.40/119.34 173.40/119.34 173.40/119.34 From the DPs we obtained the following set of size-change graphs: 173.40/119.34 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) 173.40/119.34 The graph contains the following edges 2 >= 2, 1 >= 3 173.40/119.34 173.40/119.34 173.40/119.34 *new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) 173.40/119.34 The graph contains the following edges 2 >= 2, 1 >= 3 173.40/119.34 173.40/119.34 173.40/119.34 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) 173.40/119.34 The graph contains the following edges 2 >= 1, 3 > 2 173.40/119.34 173.40/119.34 173.40/119.34 *new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) 173.40/119.34 The graph contains the following edges 2 >= 1, 3 >= 2 173.40/119.34 173.40/119.34 173.40/119.34 173.40/119.34 We oriented the following set of usable rules [AAECC05,FROCOS05]. 173.40/119.34 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1142) 173.40/119.34 YES 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1143) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primMinusNatS0(vuz18000) -> Succ(vuz18000) 173.40/119.34 new_primMinusNatS1 -> Zero 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1144) UsableRulesProof (EQUIVALENT) 173.40/119.34 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. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1145) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primMinusNatS1 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1146) QReductionProof (EQUIVALENT) 173.40/119.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 173.40/119.34 173.40/119.34 new_primMinusNatS0(x0) 173.40/119.34 new_primMinusNatS1 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1147) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1148) TransformationProof (EQUIVALENT) 173.40/119.34 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1149) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1150) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1151) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1152) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1153) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1154) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1155) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1156) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1157) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1158) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1159) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1160) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1161) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1162) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1163) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) 173.40/119.34 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.34 173.40/119.34 The TRS R consists of the following rules: 173.40/119.34 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.34 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.34 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.34 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.34 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.34 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.34 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.34 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.34 173.40/119.34 The set Q consists of the following terms: 173.40/119.34 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.34 new_primModNatS01(x0, x1) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.34 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.34 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.34 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.34 new_primMinusNatS2(Zero, Zero) 173.40/119.34 new_primModNatS1(Zero, x0) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.34 new_primModNatS1(Succ(Zero), Zero) 173.40/119.34 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.34 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.34 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.34 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.34 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.34 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.34 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.34 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.34 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.34 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.34 173.40/119.34 We have to consider all minimal (P,Q,R)-chains. 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1164) TransformationProof (EQUIVALENT) 173.40/119.34 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.34 173.40/119.34 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) 173.40/119.34 173.40/119.34 173.40/119.34 ---------------------------------------- 173.40/119.34 173.40/119.34 (1165) 173.40/119.34 Obligation: 173.40/119.34 Q DP problem: 173.40/119.34 The TRS P consists of the following rules: 173.40/119.34 173.40/119.34 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.34 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.34 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1166) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1167) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1168) TransformationProof (EQUIVALENT) 173.40/119.35 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1169) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1170) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1171) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1172) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1173) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1174) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1175) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1176) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1177) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1178) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1179) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1180) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1181) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1182) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1183) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1184) TransformationProof (EQUIVALENT) 173.40/119.35 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1185) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1186) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1187) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1188) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1189) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1190) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1191) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1192) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1193) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1194) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1195) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1196) TransformationProof (EQUIVALENT) 173.40/119.35 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) 173.40/119.35 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1197) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1198) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1199) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1200) TransformationProof (EQUIVALENT) 173.40/119.35 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.35 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1201) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1202) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1203) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1204) TransformationProof (EQUIVALENT) 173.40/119.35 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1205) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1206) DependencyGraphProof (EQUIVALENT) 173.40/119.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1207) 173.40/119.35 Complex Obligation (AND) 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1208) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1209) UsableRulesProof (EQUIVALENT) 173.40/119.35 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. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1210) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1211) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1212) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1213) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1214) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.35 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.35 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.35 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.35 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.35 173.40/119.35 The set Q consists of the following terms: 173.40/119.35 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.35 new_primModNatS01(x0, x1) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.35 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.35 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.35 new_primMinusNatS2(Zero, Zero) 173.40/119.35 new_primModNatS1(Zero, x0) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.35 new_primModNatS1(Succ(Zero), Zero) 173.40/119.35 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.35 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.35 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.35 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.35 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.35 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.35 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.35 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.35 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.35 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.35 173.40/119.35 We have to consider all minimal (P,Q,R)-chains. 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1215) TransformationProof (EQUIVALENT) 173.40/119.35 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.35 173.40/119.35 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) 173.40/119.35 173.40/119.35 173.40/119.35 ---------------------------------------- 173.40/119.35 173.40/119.35 (1216) 173.40/119.35 Obligation: 173.40/119.35 Q DP problem: 173.40/119.35 The TRS P consists of the following rules: 173.40/119.35 173.40/119.35 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) 173.40/119.35 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.35 173.40/119.35 The TRS R consists of the following rules: 173.40/119.35 173.40/119.35 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.35 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.35 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1217) TransformationProof (EQUIVALENT) 173.40/119.36 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) 173.40/119.36 (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1218) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1219) DependencyGraphProof (EQUIVALENT) 173.40/119.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1220) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1221) TransformationProof (EQUIVALENT) 173.40/119.36 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.36 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1222) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1223) DependencyGraphProof (EQUIVALENT) 173.40/119.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1224) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1225) InductionCalculusProof (EQUIVALENT) 173.40/119.36 Note that final constraints are written in bold face. 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: 173.40/119.36 *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x2, Zero, x2, Zero))) which results in the following constraint: 173.40/119.36 173.40/119.36 (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (2) (Pos(new_primModNatS02(x1, Zero, x1, Zero))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: 173.40/119.36 173.40/119.36 (3) (False=False & Pos(new_primModNatS02(x1, Zero, x1, Zero))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (4) (Zero=x23 & x1=x24 & Zero=x25 & new_primModNatS02(x1, x23, x24, x25)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1, x23, x24, x25)=Succ(x22) which results in the following new constraints: 173.40/119.36 173.40/119.36 (5) (new_primModNatS01(x28, x27)=Succ(x22) & Zero=x27 & x28=Succ(x26) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x28))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x28, Zero, x28, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x28))))))) 173.40/119.36 173.40/119.36 (6) (new_primModNatS02(x32, x31, x30, x29)=Succ(x22) & Zero=x31 & x32=Succ(x30) & Zero=Succ(x29) & (\/x33:new_primModNatS02(x32, x31, x30, x29)=Succ(x33) & Zero=x31 & x32=x30 & Zero=x29 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) 173.40/119.36 173.40/119.36 (7) (new_primModNatS01(x35, x34)=Succ(x22) & Zero=x34 & x35=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x35))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x35, Zero, x35, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x35))))))) 173.40/119.36 173.40/119.36 (8) (Succ(Succ(x38))=Succ(x22) & Zero=x37 & x38=Zero & Zero=Succ(x36) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x38))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x38, Zero, x38, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x38))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (9) (Succ(x26)=x39 & new_primModNatS01(x39, x27)=Succ(x22) & Zero=x27 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (10) (Zero=x46 & new_primModNatS01(x46, x34)=Succ(x22) & Zero=x34 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x39, x27)=Succ(x22) which results in the following new constraint: 173.40/119.36 173.40/119.36 (11) (new_primModNatS1(new_primMinusNatS2(Succ(x41), Succ(x40)), Succ(x40))=Succ(x22) & Succ(x26)=x41 & Zero=x40 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x46, x34)=Succ(x22) which results in the following new constraint: 173.40/119.36 173.40/119.36 (13) (new_primModNatS1(new_primMinusNatS2(Succ(x48), Succ(x47)), Succ(x47))=Succ(x22) & Zero=x48 & Zero=x47 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: 173.40/119.36 *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero))), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x8)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: 173.40/119.36 173.40/119.36 (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (2) (Zero=x53 & x7=x54 & Zero=x55 & new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) which results in the following new constraints: 173.40/119.36 173.40/119.36 (3) (new_primModNatS01(x58, x57)=Succ(Succ(Succ(x8))) & Zero=x57 & x58=Succ(x56) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x58, Zero, x58, Zero)))) 173.40/119.36 173.40/119.36 (4) (new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x8))) & Zero=x61 & x62=Succ(x60) & Zero=Succ(x59) & (\/x63:new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x63))) & Zero=x61 & x62=x60 & Zero=x59 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) 173.40/119.36 173.40/119.36 (5) (new_primModNatS01(x65, x64)=Succ(Succ(Succ(x8))) & Zero=x64 & x65=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x65, Zero, x65, Zero)))) 173.40/119.36 173.40/119.36 (6) (Succ(Succ(x68))=Succ(Succ(Succ(x8))) & Zero=x67 & x68=Zero & Zero=Succ(x66) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x68))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x68, Zero, x68, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (7) (Succ(x56)=x69 & new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) & Zero=x57 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 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: 173.40/119.36 173.40/119.36 (8) (Zero=x76 & new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) & Zero=x64 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) which results in the following new constraint: 173.40/119.36 173.40/119.36 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x71), Succ(x70)), Succ(x70))=Succ(Succ(Succ(x8))) & Succ(x56)=x71 & Zero=x70 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) which results in the following new constraint: 173.40/119.36 173.40/119.36 (11) (new_primModNatS1(new_primMinusNatS2(Succ(x78), Succ(x77)), Succ(x77))=Succ(Succ(Succ(x8))) & Zero=x78 & Zero=x77 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.36 173.40/119.36 (12) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: 173.40/119.36 *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: 173.40/119.36 173.40/119.36 (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.36 173.40/119.36 (2) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: 173.40/119.36 *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x16, Zero, x16, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x16)))))) which results in the following constraint: 173.40/119.36 173.40/119.36 (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: 173.40/119.36 173.40/119.36 (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 To summarize, we get the following constraints P__>=_ for the following pairs. 173.40/119.36 173.40/119.36 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) 173.40/119.36 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 173.40/119.36 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. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1226) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1227) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1228) UsableRulesProof (EQUIVALENT) 173.40/119.36 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. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1229) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1230) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1231) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1232) UsableRulesProof (EQUIVALENT) 173.40/119.36 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. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1233) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1234) QDPOrderProof (EQUIVALENT) 173.40/119.36 We use the reduction pair processor [LPAR04,JAR06]. 173.40/119.36 173.40/119.36 173.40/119.36 The following pairs can be oriented strictly and are deleted. 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) 173.40/119.36 The remaining pairs can at least be oriented weakly. 173.40/119.36 Used ordering: Polynomial interpretation [POLO]: 173.40/119.36 173.40/119.36 POL(False) = 0 173.40/119.36 POL(Neg(x_1)) = 2*x_1 173.40/119.36 POL(Pos(x_1)) = 0 173.40/119.36 POL(Succ(x_1)) = 1 + x_1 173.40/119.36 POL(True) = 3 173.40/119.36 POL(Zero) = 0 173.40/119.36 POL(new_gcd0Gcd'0(x_1, x_2)) = 2*x_1 + 2*x_2 173.40/119.36 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 173.40/119.36 POL(new_primEqInt(x_1, x_2)) = 0 173.40/119.36 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.40/119.36 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 173.40/119.36 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 173.40/119.36 POL(new_primModNatS1(x_1, x_2)) = x_1 173.40/119.36 173.40/119.36 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1235) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1236) DependencyGraphProof (EQUIVALENT) 173.40/119.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1237) 173.40/119.36 TRUE 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1238) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1239) TransformationProof (EQUIVALENT) 173.40/119.36 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1240) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1241) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1242) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1243) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1244) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1245) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1246) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1247) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1248) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1249) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1250) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1251) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1252) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1253) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1254) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1255) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1256) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1257) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1258) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1259) TransformationProof (EQUIVALENT) 173.40/119.36 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.36 173.40/119.36 (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.36 173.40/119.36 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1260) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.36 173.40/119.36 We have to consider all minimal (P,Q,R)-chains. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1261) DependencyGraphProof (EQUIVALENT) 173.40/119.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.36 ---------------------------------------- 173.40/119.36 173.40/119.36 (1262) 173.40/119.36 Obligation: 173.40/119.36 Q DP problem: 173.40/119.36 The TRS P consists of the following rules: 173.40/119.36 173.40/119.36 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.36 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.36 173.40/119.36 The TRS R consists of the following rules: 173.40/119.36 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.36 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.36 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.36 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.36 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.36 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.36 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.36 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.36 173.40/119.36 The set Q consists of the following terms: 173.40/119.36 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.36 new_primModNatS01(x0, x1) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.36 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.36 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.36 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.36 new_primMinusNatS2(Zero, Zero) 173.40/119.36 new_primModNatS1(Zero, x0) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.36 new_primModNatS1(Succ(Zero), Zero) 173.40/119.36 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.36 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.36 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.36 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.36 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.36 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.36 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.36 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.36 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.36 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1263) TransformationProof (EQUIVALENT) 173.40/119.37 By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1264) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1265) DependencyGraphProof (EQUIVALENT) 173.40/119.37 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1266) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1267) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1268) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1269) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1270) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1271) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1272) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1273) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1274) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1275) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1276) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1277) TransformationProof (EQUIVALENT) 173.40/119.37 By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1278) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1279) DependencyGraphProof (EQUIVALENT) 173.40/119.37 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1280) 173.40/119.37 Complex Obligation (AND) 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1281) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1282) UsableRulesProof (EQUIVALENT) 173.40/119.37 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. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1283) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1284) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1285) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1286) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1287) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1288) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1289) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1290) TransformationProof (EQUIVALENT) 173.40/119.37 By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: 173.40/119.37 173.40/119.37 (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1291) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1292) InductionCalculusProof (EQUIVALENT) 173.40/119.37 Note that final constraints are written in bold face. 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x14), Succ(Succ(Zero))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: 173.40/119.37 173.40/119.37 (3) (False=False & Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=Neg(Succ(x23)) & Pos(Zero)=Pos(x22) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (4) (Succ(x13)=x24 & Succ(Succ(Zero))=x25 & new_primModNatS1(x24, x25)=Succ(x23) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x25)=Succ(x23) which results in the following new constraints: 173.40/119.37 173.40/119.37 (5) (Succ(Zero)=Succ(x23) & Succ(x13)=Succ(Zero) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 (6) (new_primModNatS02(x28, x27, x28, x27)=Succ(x23) & Succ(x13)=Succ(Succ(x28)) & Succ(Succ(Zero))=Succ(x27) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (7) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (8) (x28=x30 & x27=x31 & new_primModNatS02(x28, x27, x30, x31)=Succ(x23) & Succ(Zero)=x27 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x28)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x28)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x28)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x28, x27, x30, x31)=Succ(x23) which results in the following new constraints: 173.40/119.37 173.40/119.37 (9) (new_primModNatS01(x34, x33)=Succ(x23) & x34=Succ(x32) & x33=Zero & Succ(Zero)=x33 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x34)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x34)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x34)))))))) 173.40/119.37 173.40/119.37 (10) (new_primModNatS02(x38, x37, x36, x35)=Succ(x23) & x38=Succ(x36) & x37=Succ(x35) & Succ(Zero)=x37 & (\/x39:new_primModNatS02(x38, x37, x36, x35)=Succ(x39) & x38=x36 & x37=x35 & Succ(Zero)=x37 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) 173.40/119.37 173.40/119.37 (11) (new_primModNatS01(x41, x40)=Succ(x23) & x41=Zero & x40=Zero & Succ(Zero)=x40 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x41)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x41)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x41)))))))) 173.40/119.37 173.40/119.37 (12) (Succ(Succ(x44))=Succ(x23) & x44=Zero & x43=Succ(x42) & Succ(Zero)=x43 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x44)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x44)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x44)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 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: 173.40/119.37 173.40/119.37 (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 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: 173.40/119.37 173.40/119.37 (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (Succ(x15)=x47 & Succ(Succ(Zero))=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (3) (Succ(Zero)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Zero) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 (4) (new_primModNatS02(x51, x50, x51, x50)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Succ(x51)) & Succ(Succ(Zero))=Succ(x50) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 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: 173.40/119.37 173.40/119.37 (5) (x51=x53 & x50=x54 & new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) & Succ(Zero)=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x51)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (6) (new_primModNatS01(x57, x56)=Succ(Succ(Succ(Succ(x16)))) & x57=Succ(x55) & x56=Zero & Succ(Zero)=x56 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x57)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 (7) (new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x16)))) & x61=Succ(x59) & x60=Succ(x58) & Succ(Zero)=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x62)))) & x61=x59 & x60=x58 & Succ(Zero)=x60 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 (8) (new_primModNatS01(x64, x63)=Succ(Succ(Succ(Succ(x16)))) & x64=Zero & x63=Zero & Succ(Zero)=x63 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 (9) (Succ(Succ(x67))=Succ(Succ(Succ(Succ(x16)))) & x67=Zero & x66=Succ(x65) & Succ(Zero)=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 To summarize, we get the following constraints P__>=_ for the following pairs. 173.40/119.37 173.40/119.37 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(Zero)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 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. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1293) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1294) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1295) UsableRulesProof (EQUIVALENT) 173.40/119.37 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. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1296) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1297) QDPOrderProof (EQUIVALENT) 173.40/119.37 We use the reduction pair processor [LPAR04,JAR06]. 173.40/119.37 173.40/119.37 173.40/119.37 The following pairs can be oriented strictly and are deleted. 173.40/119.37 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) 173.40/119.37 The remaining pairs can at least be oriented weakly. 173.40/119.37 Used ordering: Polynomial interpretation [POLO]: 173.40/119.37 173.40/119.37 POL(False) = 0 173.40/119.37 POL(Neg(x_1)) = x_1 173.40/119.37 POL(Pos(x_1)) = 2*x_1 173.40/119.37 POL(Succ(x_1)) = 1 + x_1 173.40/119.37 POL(True) = 3 173.40/119.37 POL(Zero) = 0 173.40/119.37 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 173.40/119.37 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 173.40/119.37 POL(new_primEqInt(x_1, x_2)) = 0 173.40/119.37 POL(new_primMinusNatS2(x_1, x_2)) = x_1 173.40/119.37 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 173.40/119.37 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 173.40/119.37 POL(new_primModNatS1(x_1, x_2)) = x_1 173.40/119.37 173.40/119.37 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1298) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1299) DependencyGraphProof (EQUIVALENT) 173.40/119.37 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1300) 173.40/119.37 TRUE 173.40/119.37 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1301) 173.40/119.37 Obligation: 173.40/119.37 Q DP problem: 173.40/119.37 The TRS P consists of the following rules: 173.40/119.37 173.40/119.37 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.37 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.37 173.40/119.37 The TRS R consists of the following rules: 173.40/119.37 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.37 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.37 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.37 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.37 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.37 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.37 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.37 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.37 173.40/119.37 The set Q consists of the following terms: 173.40/119.37 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.37 new_primModNatS01(x0, x1) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.37 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.37 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.37 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.37 new_primMinusNatS2(Zero, Zero) 173.40/119.37 new_primModNatS1(Zero, x0) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.37 new_primModNatS1(Succ(Zero), Zero) 173.40/119.37 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.37 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.37 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.37 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.37 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.37 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.37 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.37 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.37 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.37 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.37 173.40/119.37 We have to consider all minimal (P,Q,R)-chains. 173.40/119.37 ---------------------------------------- 173.40/119.37 173.40/119.37 (1302) InductionCalculusProof (EQUIVALENT) 173.40/119.37 Note that final constraints are written in bold face. 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (Succ(Succ(x3))=x40 & Succ(Succ(x2))=x41 & new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (3) (new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x44 & Succ(Succ(Zero))=x43 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) 173.40/119.37 173.40/119.37 (4) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 & (\/x49:new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x49)))) & Succ(Succ(x46))=x48 & Succ(Succ(x45))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x45))))), Neg(Succ(Succ(Succ(Succ(x46))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x45))))), Neg(new_primModNatS02(Succ(Succ(x46)), Succ(Succ(x45)), x46, x45)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) 173.40/119.37 173.40/119.37 (5) (new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x51 & Succ(Succ(Zero))=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.37 173.40/119.37 (6) (Succ(Succ(x54))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x54 & Succ(Succ(Succ(x52)))=x53 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.40/119.37 173.40/119.37 (7) (new_primModNatS1(new_primMinusNatS2(Succ(x56), Succ(x55)), Succ(x55))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x56 & Succ(Succ(Zero))=x55 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (4) using rule (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (8) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: 173.40/119.37 173.40/119.37 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x75), Succ(x74)), Succ(x74))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x75 & Succ(Succ(Zero))=x74 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (12) (new_primModNatS01(x63, x62)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x61))))=x63 & Succ(Succ(Succ(Zero)))=x62 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) 173.40/119.37 173.40/119.37 (13) (new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x65))))=x67 & Succ(Succ(Succ(Succ(x64))))=x66 & (\/x68:new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x68)))) & Succ(Succ(Succ(x65)))=x67 & Succ(Succ(Succ(x64)))=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x65))), Succ(Succ(Succ(x64))), Succ(x65), Succ(x64))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) 173.40/119.37 173.40/119.37 (14) (new_primModNatS01(x70, x69)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x70 & Succ(Succ(Succ(Zero)))=x69 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.37 173.40/119.37 (15) (Succ(Succ(x73))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x73 & Succ(Succ(Succ(Succ(x71))))=x72 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x16))))), Pos(new_primModNatS02(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=x80 & Pos(Zero)=x81 & new_primEqInt(x80, x81)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x80, x81)=False which results in the following new constraints: 173.40/119.37 173.40/119.37 (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Pos(Succ(x82)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) 173.40/119.37 173.40/119.37 (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Neg(Succ(x84)) & Pos(Zero)=Pos(x83) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (5) (Succ(Succ(x14))=x85 & Succ(Succ(x15))=x86 & new_primModNatS02(x85, x86, x14, x15)=Succ(x82) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x85, x86, x14, x15)=Succ(x82) which results in the following new constraints: 173.40/119.37 173.40/119.37 (6) (new_primModNatS01(x89, x88)=Succ(x82) & Succ(Succ(Succ(x87)))=x89 & Succ(Succ(Zero))=x88 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) 173.40/119.37 173.40/119.37 (7) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 & (\/x94:new_primModNatS02(x93, x92, x91, x90)=Succ(x94) & Succ(Succ(x91))=x93 & Succ(Succ(x90))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Succ(x90))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x91)), Succ(Succ(x90)), x91, x90)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x90))))), Pos(Succ(Succ(Succ(Succ(x91))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) 173.40/119.37 173.40/119.37 (8) (new_primModNatS01(x96, x95)=Succ(x82) & Succ(Succ(Zero))=x96 & Succ(Succ(Zero))=x95 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 (9) (Succ(Succ(x99))=Succ(x82) & Succ(Succ(Zero))=x99 & Succ(Succ(Succ(x97)))=x98 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x89, x88)=Succ(x82) which results in the following new constraint: 173.40/119.37 173.40/119.37 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x101), Succ(x100)), Succ(x100))=Succ(x82) & Succ(Succ(Succ(x87)))=x101 & Succ(Succ(Zero))=x100 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (11) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x96, x95)=Succ(x82) which results in the following new constraint: 173.40/119.37 173.40/119.37 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x120), Succ(x119)), Succ(x119))=Succ(x82) & Succ(Succ(Zero))=x120 & Succ(Succ(Zero))=x119 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x93, x92, x91, x90)=Succ(x82) which results in the following new constraints: 173.40/119.37 173.40/119.37 (15) (new_primModNatS01(x108, x107)=Succ(x82) & Succ(Succ(Succ(Succ(x106))))=x108 & Succ(Succ(Succ(Zero)))=x107 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) 173.40/119.37 173.40/119.37 (16) (new_primModNatS02(x112, x111, x110, x109)=Succ(x82) & Succ(Succ(Succ(Succ(x110))))=x112 & Succ(Succ(Succ(Succ(x109))))=x111 & (\/x113:new_primModNatS02(x112, x111, x110, x109)=Succ(x113) & Succ(Succ(Succ(x110)))=x112 & Succ(Succ(Succ(x109)))=x111 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x110)))))), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x110))), Succ(Succ(Succ(x109))), Succ(x110), Succ(x109))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))), Pos(Succ(Succ(Succ(Succ(Succ(x110)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) 173.40/119.37 173.40/119.37 (17) (new_primModNatS01(x115, x114)=Succ(x82) & Succ(Succ(Succ(Zero)))=x115 & Succ(Succ(Succ(Zero)))=x114 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 (18) (Succ(Succ(x118))=Succ(x82) & Succ(Succ(Succ(Zero)))=x118 & Succ(Succ(Succ(Succ(x116))))=x117 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (23) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: 173.40/119.37 *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x28)), Succ(Succ(x29)), x28, x29)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x29))))), Neg(Succ(Succ(Succ(Succ(x28)))))) which results in the following constraint: 173.40/119.37 173.40/119.37 (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (2) (Succ(Succ(x27))=x125 & Succ(Succ(x26))=x126 & new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (3) (new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x129 & Succ(Succ(Zero))=x128 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) 173.40/119.37 173.40/119.37 (4) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 & (\/x134:new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x134)))) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x130))))), Pos(Succ(Succ(Succ(Succ(x131))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x130))))), Pos(new_primModNatS02(Succ(Succ(x131)), Succ(Succ(x130)), x131, x130)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) 173.40/119.37 173.40/119.37 (5) (new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x136 & Succ(Succ(Zero))=x135 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.37 173.40/119.37 (6) (Succ(Succ(x139))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x139 & Succ(Succ(Succ(x137)))=x138 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: 173.40/119.37 173.40/119.37 (7) (new_primModNatS1(new_primMinusNatS2(Succ(x141), Succ(x140)), Succ(x140))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x141 & Succ(Succ(Zero))=x140 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (4) using rule (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (8) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: 173.40/119.37 173.40/119.37 (9) (new_primModNatS1(new_primMinusNatS2(Succ(x160), Succ(x159)), Succ(x159))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x160 & Succ(Succ(Zero))=x159 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.40/119.37 173.40/119.37 (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.37 173.40/119.37 (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) 173.40/119.37 173.40/119.37 173.40/119.37 173.40/119.37 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: 173.40/119.37 173.40/119.37 (12) (new_primModNatS01(x148, x147)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x146))))=x148 & Succ(Succ(Succ(Zero)))=x147 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) 173.40/119.38 173.40/119.38 (13) (new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x150))))=x152 & Succ(Succ(Succ(Succ(x149))))=x151 & (\/x153:new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x153)))) & Succ(Succ(Succ(x150)))=x152 & Succ(Succ(Succ(x149)))=x151 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(Succ(Succ(Succ(Succ(Succ(x150)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(x150), Succ(x149))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) 173.40/119.38 173.40/119.38 (14) (new_primModNatS01(x155, x154)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x155 & Succ(Succ(Succ(Zero)))=x154 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.38 173.40/119.38 (15) (Succ(Succ(x158))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x158 & Succ(Succ(Succ(Succ(x156))))=x157 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.38 173.40/119.38 (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: 173.40/119.38 *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(new_primModNatS02(Succ(Succ(x33)), Succ(Succ(x32)), x33, x32))) which results in the following constraint: 173.40/119.38 173.40/119.38 (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.38 173.40/119.38 (2) (Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=x165 & Pos(Zero)=x166 & new_primEqInt(x165, x166)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x165, x166)=False which results in the following new constraints: 173.40/119.38 173.40/119.38 (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Pos(Succ(x167)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) 173.40/119.38 173.40/119.38 (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Neg(Succ(x169)) & Pos(Zero)=Pos(x168) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV), (VII) which results in the following new constraint: 173.40/119.38 173.40/119.38 (5) (Succ(Succ(x30))=x170 & Succ(Succ(x31))=x171 & new_primModNatS02(x170, x171, x30, x31)=Succ(x169) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x170, x171, x30, x31)=Succ(x169) which results in the following new constraints: 173.40/119.38 173.40/119.38 (6) (new_primModNatS01(x174, x173)=Succ(x169) & Succ(Succ(Succ(x172)))=x174 & Succ(Succ(Zero))=x173 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) 173.40/119.38 173.40/119.38 (7) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 & (\/x179:new_primModNatS02(x178, x177, x176, x175)=Succ(x179) & Succ(Succ(x176))=x178 & Succ(Succ(x175))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x176))))), Pos(Succ(Succ(Succ(Succ(x175))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x176)), Succ(Succ(x175)), x176, x175)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) 173.40/119.38 173.40/119.38 (8) (new_primModNatS01(x181, x180)=Succ(x169) & Succ(Succ(Zero))=x181 & Succ(Succ(Zero))=x180 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 (9) (Succ(Succ(x184))=Succ(x169) & Succ(Succ(Zero))=x184 & Succ(Succ(Succ(x182)))=x183 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x174, x173)=Succ(x169) which results in the following new constraint: 173.40/119.38 173.40/119.38 (10) (new_primModNatS1(new_primMinusNatS2(Succ(x186), Succ(x185)), Succ(x185))=Succ(x169) & Succ(Succ(Succ(x172)))=x186 & Succ(Succ(Zero))=x185 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (7) using rule (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (11) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x181, x180)=Succ(x169) which results in the following new constraint: 173.40/119.38 173.40/119.38 (12) (new_primModNatS1(new_primMinusNatS2(Succ(x205), Succ(x204)), Succ(x204))=Succ(x169) & Succ(Succ(Zero))=x205 & Succ(Succ(Zero))=x204 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.38 173.40/119.38 (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x178, x177, x176, x175)=Succ(x169) which results in the following new constraints: 173.40/119.38 173.40/119.38 (15) (new_primModNatS01(x193, x192)=Succ(x169) & Succ(Succ(Succ(Succ(x191))))=x193 & Succ(Succ(Succ(Zero)))=x192 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) 173.40/119.38 173.40/119.38 (16) (new_primModNatS02(x197, x196, x195, x194)=Succ(x169) & Succ(Succ(Succ(Succ(x195))))=x197 & Succ(Succ(Succ(Succ(x194))))=x196 & (\/x198:new_primModNatS02(x197, x196, x195, x194)=Succ(x198) & Succ(Succ(Succ(x195)))=x197 & Succ(Succ(Succ(x194)))=x196 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x195)))))), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x195))), Succ(Succ(Succ(x194))), Succ(x195), Succ(x194))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))), Neg(Succ(Succ(Succ(Succ(Succ(x195)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) 173.40/119.38 173.40/119.38 (17) (new_primModNatS01(x200, x199)=Succ(x169) & Succ(Succ(Succ(Zero)))=x200 & Succ(Succ(Succ(Zero)))=x199 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 (18) (Succ(Succ(x203))=Succ(x169) & Succ(Succ(Succ(Zero)))=x203 & Succ(Succ(Succ(Succ(x201))))=x202 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 173.40/119.38 173.40/119.38 (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: 173.40/119.38 173.40/119.38 (23) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 To summarize, we get the following constraints P__>=_ for the following pairs. 173.40/119.38 173.40/119.38 *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) 173.40/119.38 173.40/119.38 173.40/119.38 *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 173.40/119.38 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. 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1303) 173.40/119.38 Obligation: 173.40/119.38 Q DP problem: 173.40/119.38 The TRS P consists of the following rules: 173.40/119.38 173.40/119.38 new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.38 new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.38 new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) 173.40/119.38 new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) 173.40/119.38 173.40/119.38 The TRS R consists of the following rules: 173.40/119.38 173.40/119.38 new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) 173.40/119.38 new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) 173.40/119.38 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.38 new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) 173.40/119.38 new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) 173.40/119.38 new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) 173.40/119.38 new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) 173.40/119.38 new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) 173.40/119.38 new_primModNatS1(Zero, vuz11600) -> Zero 173.40/119.38 new_primMinusNatS2(Zero, Zero) -> Zero 173.40/119.38 new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero 173.40/119.38 new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) 173.40/119.38 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 173.40/119.38 new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False 173.40/119.38 new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False 173.40/119.38 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 173.40/119.38 173.40/119.38 The set Q consists of the following terms: 173.40/119.38 173.40/119.38 new_primEqInt(Pos(Zero), Neg(Zero)) 173.40/119.38 new_primEqInt(Neg(Zero), Pos(Zero)) 173.40/119.38 new_primModNatS01(x0, x1) 173.40/119.38 new_primModNatS1(Succ(Succ(x0)), Zero) 173.40/119.38 new_primMinusNatS2(Succ(x0), Succ(x1)) 173.40/119.38 new_primEqInt(Pos(Zero), Pos(Zero)) 173.40/119.38 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 173.40/119.38 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 173.40/119.38 new_primModNatS1(Succ(Zero), Succ(x0)) 173.40/119.38 new_primMinusNatS2(Zero, Zero) 173.40/119.38 new_primModNatS1(Zero, x0) 173.40/119.38 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 173.40/119.38 new_primModNatS1(Succ(Zero), Zero) 173.40/119.38 new_primMinusNatS2(Zero, Succ(x0)) 173.40/119.38 new_primModNatS02(x0, x1, Succ(x2), Zero) 173.40/119.38 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 173.40/119.38 new_primMinusNatS2(Succ(x0), Zero) 173.40/119.38 new_primModNatS02(x0, x1, Zero, Succ(x2)) 173.40/119.38 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 173.40/119.38 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 173.40/119.38 new_primEqInt(Neg(Zero), Neg(Zero)) 173.40/119.38 new_primModNatS02(x0, x1, Zero, Zero) 173.40/119.38 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 173.40/119.38 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) 173.40/119.38 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 173.40/119.38 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) 173.40/119.38 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 173.40/119.38 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 173.40/119.38 173.40/119.38 We have to consider all minimal (P,Q,R)-chains. 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1304) 173.40/119.38 Obligation: 173.40/119.38 Q DP problem: 173.40/119.38 The TRS P consists of the following rules: 173.40/119.38 173.40/119.38 new_quot7(vuz206, vuz207, Succ(vuz2080), Succ(vuz2090), vuz210, vuz211, vuz212) -> new_quot7(vuz206, vuz207, vuz2080, vuz2090, vuz210, vuz211, vuz212) 173.40/119.38 173.40/119.38 R is empty. 173.40/119.38 Q is empty. 173.40/119.38 We have to consider all minimal (P,Q,R)-chains. 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1305) QDPSizeChangeProof (EQUIVALENT) 173.40/119.38 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. 173.40/119.38 173.40/119.38 From the DPs we obtained the following set of size-change graphs: 173.40/119.38 *new_quot7(vuz206, vuz207, Succ(vuz2080), Succ(vuz2090), vuz210, vuz211, vuz212) -> new_quot7(vuz206, vuz207, vuz2080, vuz2090, vuz210, vuz211, vuz212) 173.40/119.38 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 173.40/119.38 173.40/119.38 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1306) 173.40/119.38 YES 173.40/119.38 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1307) 173.40/119.38 Obligation: 173.40/119.38 Q DP problem: 173.40/119.38 The TRS P consists of the following rules: 173.40/119.38 173.40/119.38 new_primEqNat(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat(vuz16000, vuz47000) 173.40/119.38 173.40/119.38 R is empty. 173.40/119.38 Q is empty. 173.40/119.38 We have to consider all minimal (P,Q,R)-chains. 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1308) QDPSizeChangeProof (EQUIVALENT) 173.40/119.38 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. 173.40/119.38 173.40/119.38 From the DPs we obtained the following set of size-change graphs: 173.40/119.38 *new_primEqNat(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat(vuz16000, vuz47000) 173.40/119.38 The graph contains the following edges 1 > 1, 2 > 2 173.40/119.38 173.40/119.38 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1309) 173.40/119.38 YES 173.40/119.38 173.40/119.38 ---------------------------------------- 173.40/119.38 173.40/119.38 (1310) Narrow (COMPLETE) 173.40/119.38 Haskell To QDPs 173.40/119.38 173.40/119.38 digraph dp_graph { 173.40/119.38 node [outthreshold=100, inthreshold=100];1[label="(/)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 173.40/119.38 3[label="(/) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 173.40/119.38 4[label="(/) vuz3 vuz4",fontsize=16,color="blue",shape="box"];5345[label="/ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 5345[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5345 -> 5[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5346[label="/ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 5346[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5346 -> 6[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5347[label="/ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 5347[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5347 -> 7[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 8[label="",style="solid", color="black", weight=3]; 173.40/119.38 6[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 173.40/119.38 7[label="(/) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5348[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];7 -> 5348[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5348 -> 10[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 8[label="primDivFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5349[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];8 -> 5349[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5349 -> 11[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 9[label="primDivDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5350[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];9 -> 5350[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5350 -> 12[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 10[label="(/) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5351[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 5351[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5351 -> 13[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 11[label="primDivFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5352[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 5352[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5352 -> 14[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 12[label="primDivDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5353[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];12 -> 5353[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5353 -> 15[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 13[label="(/) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];13 -> 16[label="",style="solid", color="black", weight=3]; 173.40/119.38 14[label="primDivFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];14 -> 17[label="",style="solid", color="black", weight=3]; 173.40/119.38 15[label="primDivDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];15 -> 18[label="",style="solid", color="black", weight=3]; 173.40/119.38 16[label="vuz30 * vuz41 % (vuz31 * vuz40)",fontsize=16,color="black",shape="box"];16 -> 19[label="",style="solid", color="black", weight=3]; 173.40/119.38 17[label="Float (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];17 -> 20[label="",style="dashed", color="green", weight=3]; 173.40/119.38 17 -> 21[label="",style="dashed", color="green", weight=3]; 173.40/119.38 18[label="Double (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];18 -> 22[label="",style="dashed", color="green", weight=3]; 173.40/119.38 18 -> 23[label="",style="dashed", color="green", weight=3]; 173.40/119.38 19[label="reduce (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 173.40/119.38 20[label="vuz30 * vuz41",fontsize=16,color="black",shape="triangle"];20 -> 25[label="",style="solid", color="black", weight=3]; 173.40/119.38 21 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 21[label="vuz31 * vuz40",fontsize=16,color="magenta"];21 -> 26[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 21 -> 27[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 22 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 22[label="vuz30 * vuz41",fontsize=16,color="magenta"];22 -> 28[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 22 -> 29[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 23 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 23[label="vuz31 * vuz40",fontsize=16,color="magenta"];23 -> 30[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 23 -> 31[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 24[label="reduce2 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 173.40/119.38 25[label="primMulInt vuz30 vuz41",fontsize=16,color="burlywood",shape="triangle"];5354[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5354[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5354 -> 33[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5355[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5355[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5355 -> 34[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 26[label="vuz40",fontsize=16,color="green",shape="box"];27[label="vuz31",fontsize=16,color="green",shape="box"];28[label="vuz41",fontsize=16,color="green",shape="box"];29[label="vuz30",fontsize=16,color="green",shape="box"];30[label="vuz40",fontsize=16,color="green",shape="box"];31[label="vuz31",fontsize=16,color="green",shape="box"];32 -> 35[label="",style="dashed", color="red", weight=0]; 173.40/119.38 32[label="reduce2Reduce1 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (abs (vuz31 * vuz40) == fromInt (Pos Zero))",fontsize=16,color="magenta"];32 -> 36[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 32 -> 37[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 32 -> 38[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 32 -> 39[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 32 -> 40[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 33[label="primMulInt (Pos vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5356[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5356[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5356 -> 41[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5357[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5357[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5357 -> 42[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 34[label="primMulInt (Neg vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5358[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5358[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5358 -> 43[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5359[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5359[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5359 -> 44[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 36[label="vuz30",fontsize=16,color="green",shape="box"];37[label="vuz41",fontsize=16,color="green",shape="box"];38[label="vuz40",fontsize=16,color="green",shape="box"];39[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];5360[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5360[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5360 -> 45[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5361[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5361[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5361 -> 46[label="",style="solid", color="blue", weight=3]; 173.40/119.38 40[label="vuz31",fontsize=16,color="green",shape="box"];35[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) vuz15",fontsize=16,color="burlywood",shape="triangle"];5362[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];35 -> 5362[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5362 -> 47[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5363[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];35 -> 5363[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5363 -> 48[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 41[label="primMulInt (Pos vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];41 -> 49[label="",style="solid", color="black", weight=3]; 173.40/119.38 42[label="primMulInt (Pos vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];42 -> 50[label="",style="solid", color="black", weight=3]; 173.40/119.38 43[label="primMulInt (Neg vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];43 -> 51[label="",style="solid", color="black", weight=3]; 173.40/119.38 44[label="primMulInt (Neg vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];44 -> 52[label="",style="solid", color="black", weight=3]; 173.40/119.38 45[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];45 -> 53[label="",style="solid", color="black", weight=3]; 173.40/119.38 46 -> 1690[label="",style="dashed", color="red", weight=0]; 173.40/119.38 46[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="magenta"];46 -> 1691[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 46 -> 1692[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 47[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) False",fontsize=16,color="black",shape="box"];47 -> 56[label="",style="solid", color="black", weight=3]; 173.40/119.38 48[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];48 -> 57[label="",style="solid", color="black", weight=3]; 173.40/119.38 49[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];49 -> 58[label="",style="dashed", color="green", weight=3]; 173.40/119.38 50[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];50 -> 59[label="",style="dashed", color="green", weight=3]; 173.40/119.38 51[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];51 -> 60[label="",style="dashed", color="green", weight=3]; 173.40/119.38 52[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];52 -> 61[label="",style="dashed", color="green", weight=3]; 173.40/119.38 53[label="absReal (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];53 -> 62[label="",style="solid", color="black", weight=3]; 173.40/119.38 1691 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 1691[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1692 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 1692[label="abs (vuz31 * vuz40)",fontsize=16,color="magenta"];1692 -> 1698[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1690[label="vuz101 == vuz100",fontsize=16,color="black",shape="triangle"];1690 -> 1699[label="",style="solid", color="black", weight=3]; 173.40/119.38 56[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) otherwise",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 173.40/119.38 57[label="error []",fontsize=16,color="black",shape="box"];57 -> 67[label="",style="solid", color="black", weight=3]; 173.40/119.38 58[label="primMulNat vuz300 vuz410",fontsize=16,color="burlywood",shape="triangle"];5364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];58 -> 5364[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5364 -> 68[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 5365[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5365 -> 69[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 59 -> 58[label="",style="dashed", color="red", weight=0]; 173.40/119.38 59[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];59 -> 70[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 60 -> 58[label="",style="dashed", color="red", weight=0]; 173.40/119.38 60[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];60 -> 71[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 61 -> 58[label="",style="dashed", color="red", weight=0]; 173.40/119.38 61[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];61 -> 72[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 61 -> 73[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 62[label="absReal2 (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];62 -> 74[label="",style="solid", color="black", weight=3]; 173.40/119.38 338[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];338 -> 375[label="",style="solid", color="black", weight=3]; 173.40/119.38 1698 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 1698[label="vuz31 * vuz40",fontsize=16,color="magenta"];1698 -> 1742[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1698 -> 1743[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 123[label="abs vuz25",fontsize=16,color="black",shape="triangle"];123 -> 148[label="",style="solid", color="black", weight=3]; 173.40/119.38 1699[label="primEqInt vuz101 vuz100",fontsize=16,color="burlywood",shape="triangle"];5366[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5366[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5366 -> 1744[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5367[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5367[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5367 -> 1745[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 66[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];66 -> 76[label="",style="solid", color="black", weight=3]; 173.40/119.38 67[label="error []",fontsize=16,color="red",shape="box"];68[label="primMulNat (Succ vuz3000) vuz410",fontsize=16,color="burlywood",shape="box"];5368[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];68 -> 5368[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5368 -> 77[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5369[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];68 -> 5369[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5369 -> 78[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 69[label="primMulNat Zero vuz410",fontsize=16,color="burlywood",shape="box"];5370[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];69 -> 5370[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5370 -> 79[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5371[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 5371[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5371 -> 80[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 70[label="vuz410",fontsize=16,color="green",shape="box"];71[label="vuz300",fontsize=16,color="green",shape="box"];72[label="vuz300",fontsize=16,color="green",shape="box"];73[label="vuz410",fontsize=16,color="green",shape="box"];74[label="absReal1 (vuz31 * vuz40) (vuz31 * vuz40 >= fromInt (Pos Zero)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];74 -> 81[label="",style="solid", color="black", weight=3]; 173.40/119.38 375[label="Pos Zero",fontsize=16,color="green",shape="box"];1742[label="vuz40",fontsize=16,color="green",shape="box"];1743[label="vuz31",fontsize=16,color="green",shape="box"];148[label="absReal vuz25",fontsize=16,color="black",shape="box"];148 -> 169[label="",style="solid", color="black", weight=3]; 173.40/119.38 1744[label="primEqInt (Pos vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5372[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5372[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5372 -> 1814[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5373[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5373[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5373 -> 1815[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1745[label="primEqInt (Neg vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5374[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5374[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5374 -> 1816[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5375[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5375[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5375 -> 1817[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 76[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) :% (abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)))",fontsize=16,color="green",shape="box"];76 -> 83[label="",style="dashed", color="green", weight=3]; 173.40/119.38 76 -> 84[label="",style="dashed", color="green", weight=3]; 173.40/119.38 77[label="primMulNat (Succ vuz3000) (Succ vuz4100)",fontsize=16,color="black",shape="box"];77 -> 85[label="",style="solid", color="black", weight=3]; 173.40/119.38 78[label="primMulNat (Succ vuz3000) Zero",fontsize=16,color="black",shape="box"];78 -> 86[label="",style="solid", color="black", weight=3]; 173.40/119.38 79[label="primMulNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];79 -> 87[label="",style="solid", color="black", weight=3]; 173.40/119.38 80[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];80 -> 88[label="",style="solid", color="black", weight=3]; 173.40/119.38 81[label="absReal1 (vuz31 * vuz40) (compare (vuz31 * vuz40) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];81 -> 89[label="",style="solid", color="black", weight=3]; 173.40/119.38 169[label="absReal2 vuz25",fontsize=16,color="black",shape="box"];169 -> 190[label="",style="solid", color="black", weight=3]; 173.40/119.38 1814[label="primEqInt (Pos (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5376[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5376[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5376 -> 1879[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5377[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5377[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5377 -> 1880[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1815[label="primEqInt (Pos Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5378[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5378[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5378 -> 1881[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5379[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5379[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5379 -> 1882[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1816[label="primEqInt (Neg (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5380[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5380[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5380 -> 1883[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5381[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5381[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5381 -> 1884[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1817[label="primEqInt (Neg Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5382[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5382[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5382 -> 1885[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5383[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5383[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5383 -> 1886[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 83[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5384[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 5384[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5384 -> 91[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5385[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 5385[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5385 -> 92[label="",style="solid", color="blue", weight=3]; 173.40/119.38 84[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5386[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 5386[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5386 -> 93[label="",style="solid", color="blue", weight=3]; 173.40/119.38 5387[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 5387[label="",style="solid", color="blue", weight=9]; 173.40/119.38 5387 -> 94[label="",style="solid", color="blue", weight=3]; 173.40/119.38 85 -> 95[label="",style="dashed", color="red", weight=0]; 173.40/119.38 85[label="primPlusNat (primMulNat vuz3000 (Succ vuz4100)) (Succ vuz4100)",fontsize=16,color="magenta"];85 -> 96[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 86[label="Zero",fontsize=16,color="green",shape="box"];87[label="Zero",fontsize=16,color="green",shape="box"];88[label="Zero",fontsize=16,color="green",shape="box"];89[label="absReal1 (vuz31 * vuz40) (not (compare (vuz31 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5388[label="vuz31/Integer vuz310",fontsize=10,color="white",style="solid",shape="box"];89 -> 5388[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5388 -> 97[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 190[label="absReal1 vuz25 (vuz25 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];190 -> 205[label="",style="solid", color="black", weight=3]; 173.40/119.38 1879[label="primEqInt (Pos (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5389[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5389[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5389 -> 1952[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5390[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5390[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5390 -> 1953[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1880[label="primEqInt (Pos (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="black",shape="box"];1880 -> 1954[label="",style="solid", color="black", weight=3]; 173.40/119.38 1881[label="primEqInt (Pos Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5391[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5391[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5391 -> 1955[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5392[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5392[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5392 -> 1956[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1882[label="primEqInt (Pos Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5393[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5393[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5393 -> 1957[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5394[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5394[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5394 -> 1958[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1883[label="primEqInt (Neg (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="black",shape="box"];1883 -> 1959[label="",style="solid", color="black", weight=3]; 173.40/119.38 1884[label="primEqInt (Neg (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5395[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5395[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5395 -> 1960[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5396[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5396[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5396 -> 1961[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1885[label="primEqInt (Neg Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5397[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5397[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5397 -> 1962[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5398[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5398[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5398 -> 1963[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 1886[label="primEqInt (Neg Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5399[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5399[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5399 -> 1964[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5400[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5400[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5400 -> 1965[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 91 -> 99[label="",style="dashed", color="red", weight=0]; 173.40/119.38 91[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];91 -> 100[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 91 -> 101[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 91 -> 102[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 92[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5401[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];92 -> 5401[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5401 -> 106[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 93 -> 99[label="",style="dashed", color="red", weight=0]; 173.40/119.38 93[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];93 -> 103[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 93 -> 104[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 93 -> 105[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 94[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];94 -> 107[label="",style="solid", color="black", weight=3]; 173.40/119.38 96 -> 58[label="",style="dashed", color="red", weight=0]; 173.40/119.38 96[label="primMulNat vuz3000 (Succ vuz4100)",fontsize=16,color="magenta"];96 -> 108[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 96 -> 109[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 95[label="primPlusNat vuz17 (Succ vuz4100)",fontsize=16,color="burlywood",shape="triangle"];5402[label="vuz17/Succ vuz170",fontsize=10,color="white",style="solid",shape="box"];95 -> 5402[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5402 -> 110[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5403[label="vuz17/Zero",fontsize=10,color="white",style="solid",shape="box"];95 -> 5403[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5403 -> 111[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 97[label="absReal1 (Integer vuz310 * vuz40) (not (compare (Integer vuz310 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5404[label="vuz40/Integer vuz400",fontsize=10,color="white",style="solid",shape="box"];97 -> 5404[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5404 -> 112[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 205[label="absReal1 vuz25 (compare vuz25 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];205 -> 221[label="",style="solid", color="black", weight=3]; 173.40/119.38 1952[label="primEqInt (Pos (Succ vuz10100)) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1952 -> 1975[label="",style="solid", color="black", weight=3]; 173.40/119.38 1953[label="primEqInt (Pos (Succ vuz10100)) (Pos Zero)",fontsize=16,color="black",shape="box"];1953 -> 1976[label="",style="solid", color="black", weight=3]; 173.40/119.38 1954[label="False",fontsize=16,color="green",shape="box"];1955[label="primEqInt (Pos Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1955 -> 1977[label="",style="solid", color="black", weight=3]; 173.40/119.38 1956[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1956 -> 1978[label="",style="solid", color="black", weight=3]; 173.40/119.38 1957[label="primEqInt (Pos Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1957 -> 1979[label="",style="solid", color="black", weight=3]; 173.40/119.38 1958[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1958 -> 1980[label="",style="solid", color="black", weight=3]; 173.40/119.38 1959[label="False",fontsize=16,color="green",shape="box"];1960[label="primEqInt (Neg (Succ vuz10100)) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1960 -> 1981[label="",style="solid", color="black", weight=3]; 173.40/119.38 1961[label="primEqInt (Neg (Succ vuz10100)) (Neg Zero)",fontsize=16,color="black",shape="box"];1961 -> 1982[label="",style="solid", color="black", weight=3]; 173.40/119.38 1962[label="primEqInt (Neg Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1962 -> 1983[label="",style="solid", color="black", weight=3]; 173.40/119.38 1963[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1963 -> 1984[label="",style="solid", color="black", weight=3]; 173.40/119.38 1964[label="primEqInt (Neg Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1964 -> 1985[label="",style="solid", color="black", weight=3]; 173.40/119.38 1965[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1965 -> 1986[label="",style="solid", color="black", weight=3]; 173.40/119.38 100 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 100[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];100 -> 114[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 100 -> 115[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 101 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 101[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];101 -> 116[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 101 -> 117[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 102 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 102[label="vuz13 * vuz14",fontsize=16,color="magenta"];102 -> 118[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 102 -> 119[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 99[label="vuz18 `quot` reduce2D vuz19 (abs vuz21)",fontsize=16,color="black",shape="triangle"];99 -> 120[label="",style="solid", color="black", weight=3]; 173.40/119.38 106[label="Integer vuz110 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5405[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];106 -> 5405[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5405 -> 125[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 103 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 103[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];103 -> 121[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 103 -> 122[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 104 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 104[label="abs (vuz13 * vuz14)",fontsize=16,color="magenta"];104 -> 124[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 105 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 105[label="vuz13 * vuz14",fontsize=16,color="magenta"];105 -> 126[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 105 -> 127[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 107[label="absReal (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];107 -> 128[label="",style="solid", color="black", weight=3]; 173.40/119.38 108[label="vuz3000",fontsize=16,color="green",shape="box"];109[label="Succ vuz4100",fontsize=16,color="green",shape="box"];110[label="primPlusNat (Succ vuz170) (Succ vuz4100)",fontsize=16,color="black",shape="box"];110 -> 129[label="",style="solid", color="black", weight=3]; 173.40/119.38 111[label="primPlusNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];111 -> 130[label="",style="solid", color="black", weight=3]; 173.40/119.38 112[label="absReal1 (Integer vuz310 * Integer vuz400) (not (compare (Integer vuz310 * Integer vuz400) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];112 -> 131[label="",style="solid", color="black", weight=3]; 173.40/119.38 221[label="absReal1 vuz25 (not (compare vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];221 -> 237[label="",style="solid", color="black", weight=3]; 173.40/119.38 1975 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.38 1975[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1975 -> 2006[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1975 -> 2007[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1976[label="False",fontsize=16,color="green",shape="box"];1977[label="False",fontsize=16,color="green",shape="box"];1978[label="True",fontsize=16,color="green",shape="box"];1979[label="False",fontsize=16,color="green",shape="box"];1980[label="True",fontsize=16,color="green",shape="box"];1981 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.38 1981[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1981 -> 2008[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1981 -> 2009[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 1982[label="False",fontsize=16,color="green",shape="box"];1983[label="False",fontsize=16,color="green",shape="box"];1984[label="True",fontsize=16,color="green",shape="box"];1985[label="False",fontsize=16,color="green",shape="box"];1986[label="True",fontsize=16,color="green",shape="box"];114 -> 133[label="",style="dashed", color="red", weight=0]; 173.40/119.38 114[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];114 -> 134[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 115 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 115[label="vuz11 * vuz12",fontsize=16,color="magenta"];115 -> 137[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 115 -> 138[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 116 -> 133[label="",style="dashed", color="red", weight=0]; 173.40/119.38 116[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];116 -> 135[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 117 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 117[label="vuz11 * vuz12",fontsize=16,color="magenta"];117 -> 139[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 117 -> 140[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 118[label="vuz14",fontsize=16,color="green",shape="box"];119[label="vuz13",fontsize=16,color="green",shape="box"];120 -> 141[label="",style="dashed", color="red", weight=0]; 173.40/119.38 120[label="primQuotInt vuz18 (reduce2D vuz19 (abs vuz21))",fontsize=16,color="magenta"];120 -> 142[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 125[label="Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];125 -> 143[label="",style="solid", color="black", weight=3]; 173.40/119.38 121 -> 133[label="",style="dashed", color="red", weight=0]; 173.40/119.38 121[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 122 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 122[label="vuz11 * vuz12",fontsize=16,color="magenta"];122 -> 144[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 124 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 124[label="vuz13 * vuz14",fontsize=16,color="magenta"];124 -> 146[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 124 -> 147[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 126[label="vuz14",fontsize=16,color="green",shape="box"];127[label="vuz13",fontsize=16,color="green",shape="box"];128[label="absReal2 (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal2 (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];128 -> 149[label="",style="solid", color="black", weight=3]; 173.40/119.38 129[label="Succ (Succ (primPlusNat vuz170 vuz4100))",fontsize=16,color="green",shape="box"];129 -> 150[label="",style="dashed", color="green", weight=3]; 173.40/119.38 130[label="Succ vuz4100",fontsize=16,color="green",shape="box"];131 -> 151[label="",style="dashed", color="red", weight=0]; 173.40/119.38 131[label="absReal1 (Integer (primMulInt vuz310 vuz400)) (not (compare (Integer (primMulInt vuz310 vuz400)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];131 -> 152[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 131 -> 153[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 237[label="absReal1 vuz25 (not (primCmpInt vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5406[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5406[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5406 -> 258[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5407[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5407[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5407 -> 259[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 2006[label="vuz10000",fontsize=16,color="green",shape="box"];2007[label="vuz10100",fontsize=16,color="green",shape="box"];547[label="primEqNat vuz1600 vuz4700",fontsize=16,color="burlywood",shape="triangle"];5408[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];547 -> 5408[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5408 -> 580[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5409[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];547 -> 5409[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5409 -> 581[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 2008[label="vuz10000",fontsize=16,color="green",shape="box"];2009[label="vuz10100",fontsize=16,color="green",shape="box"];134 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 134[label="vuz13 * vuz14",fontsize=16,color="magenta"];134 -> 156[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 134 -> 157[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 133[label="signum vuz26",fontsize=16,color="black",shape="triangle"];133 -> 158[label="",style="solid", color="black", weight=3]; 173.40/119.38 137[label="vuz12",fontsize=16,color="green",shape="box"];138[label="vuz11",fontsize=16,color="green",shape="box"];135 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 159[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 135 -> 160[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 139[label="vuz12",fontsize=16,color="green",shape="box"];140[label="vuz11",fontsize=16,color="green",shape="box"];142 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 142[label="abs vuz21",fontsize=16,color="magenta"];142 -> 161[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 141[label="primQuotInt vuz18 (reduce2D vuz19 vuz27)",fontsize=16,color="burlywood",shape="triangle"];5410[label="vuz18/Pos vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5410[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5410 -> 162[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5411[label="vuz18/Neg vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5411[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5411 -> 163[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 143 -> 164[label="",style="dashed", color="red", weight=0]; 173.40/119.38 143[label="Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14) `quot` reduce2D (Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];143 -> 165[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 143 -> 166[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 136 -> 20[label="",style="dashed", color="red", weight=0]; 173.40/119.38 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 167[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 136 -> 168[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 144[label="vuz12",fontsize=16,color="green",shape="box"];145[label="vuz11",fontsize=16,color="green",shape="box"];146[label="vuz14",fontsize=16,color="green",shape="box"];147[label="vuz13",fontsize=16,color="green",shape="box"];149[label="absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];149 -> 170[label="",style="solid", color="black", weight=3]; 173.40/119.38 150[label="primPlusNat vuz170 vuz4100",fontsize=16,color="burlywood",shape="triangle"];5412[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];150 -> 5412[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5412 -> 171[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5413[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];150 -> 5413[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5413 -> 172[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 152 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 152[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];152 -> 173[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 152 -> 174[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 153 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 153[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];153 -> 175[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 153 -> 176[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 151[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];151 -> 177[label="",style="solid", color="black", weight=3]; 173.40/119.38 258[label="absReal1 (Pos vuz250) (not (primCmpInt (Pos vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5414[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];258 -> 5414[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5414 -> 286[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5415[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 5415[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5415 -> 287[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 259[label="absReal1 (Neg vuz250) (not (primCmpInt (Neg vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5416[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];259 -> 5416[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5416 -> 288[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5417[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];259 -> 5417[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5417 -> 289[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 580[label="primEqNat (Succ vuz16000) vuz4700",fontsize=16,color="burlywood",shape="box"];5418[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];580 -> 5418[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5418 -> 627[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5419[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];580 -> 5419[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5419 -> 628[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 581[label="primEqNat Zero vuz4700",fontsize=16,color="burlywood",shape="box"];5420[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];581 -> 5420[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5420 -> 629[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5421[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];581 -> 5421[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5421 -> 630[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="signumReal vuz26",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 173.40/119.38 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz21",fontsize=16,color="green",shape="box"];162[label="primQuotInt (Pos vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];162 -> 183[label="",style="solid", color="black", weight=3]; 173.40/119.38 163[label="primQuotInt (Neg vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];163 -> 184[label="",style="solid", color="black", weight=3]; 173.40/119.38 165 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 165[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];165 -> 185[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 165 -> 186[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 166 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 166[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];166 -> 187[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 166 -> 188[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 164[label="Integer vuz30 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="triangle"];164 -> 189[label="",style="solid", color="black", weight=3]; 173.40/119.38 167[label="vuz14",fontsize=16,color="green",shape="box"];168[label="vuz13",fontsize=16,color="green",shape="box"];170[label="absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];170 -> 191[label="",style="solid", color="black", weight=3]; 173.40/119.38 171[label="primPlusNat (Succ vuz1700) vuz4100",fontsize=16,color="burlywood",shape="box"];5422[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];171 -> 5422[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5422 -> 192[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5423[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];171 -> 5423[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5423 -> 193[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 172[label="primPlusNat Zero vuz4100",fontsize=16,color="burlywood",shape="box"];5424[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];172 -> 5424[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5424 -> 194[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5425[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];172 -> 5425[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5425 -> 195[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 173[label="vuz400",fontsize=16,color="green",shape="box"];174[label="vuz310",fontsize=16,color="green",shape="box"];175[label="vuz400",fontsize=16,color="green",shape="box"];176[label="vuz310",fontsize=16,color="green",shape="box"];177[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (Integer (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];177 -> 196[label="",style="solid", color="black", weight=3]; 173.40/119.38 286[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];286 -> 326[label="",style="solid", color="black", weight=3]; 173.40/119.38 287[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];287 -> 327[label="",style="solid", color="black", weight=3]; 173.40/119.38 288[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];288 -> 328[label="",style="solid", color="black", weight=3]; 173.40/119.38 289[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];289 -> 329[label="",style="solid", color="black", weight=3]; 173.40/119.38 627[label="primEqNat (Succ vuz16000) (Succ vuz47000)",fontsize=16,color="black",shape="box"];627 -> 703[label="",style="solid", color="black", weight=3]; 173.40/119.38 628[label="primEqNat (Succ vuz16000) Zero",fontsize=16,color="black",shape="box"];628 -> 704[label="",style="solid", color="black", weight=3]; 173.40/119.38 629[label="primEqNat Zero (Succ vuz47000)",fontsize=16,color="black",shape="box"];629 -> 705[label="",style="solid", color="black", weight=3]; 173.40/119.38 630[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];630 -> 706[label="",style="solid", color="black", weight=3]; 173.40/119.38 182[label="signumReal3 vuz26",fontsize=16,color="black",shape="box"];182 -> 201[label="",style="solid", color="black", weight=3]; 173.40/119.38 183[label="primQuotInt (Pos vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];183 -> 202[label="",style="solid", color="black", weight=3]; 173.40/119.38 184[label="primQuotInt (Neg vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];184 -> 203[label="",style="solid", color="black", weight=3]; 173.40/119.38 185[label="vuz120",fontsize=16,color="green",shape="box"];186[label="vuz110",fontsize=16,color="green",shape="box"];187[label="vuz120",fontsize=16,color="green",shape="box"];188[label="vuz110",fontsize=16,color="green",shape="box"];189[label="Integer vuz30 * signumReal (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];189 -> 204[label="",style="solid", color="black", weight=3]; 173.40/119.38 191[label="absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5426[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];191 -> 5426[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5426 -> 206[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 192[label="primPlusNat (Succ vuz1700) (Succ vuz41000)",fontsize=16,color="black",shape="box"];192 -> 207[label="",style="solid", color="black", weight=3]; 173.40/119.38 193[label="primPlusNat (Succ vuz1700) Zero",fontsize=16,color="black",shape="box"];193 -> 208[label="",style="solid", color="black", weight=3]; 173.40/119.38 194[label="primPlusNat Zero (Succ vuz41000)",fontsize=16,color="black",shape="box"];194 -> 209[label="",style="solid", color="black", weight=3]; 173.40/119.38 195[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];195 -> 210[label="",style="solid", color="black", weight=3]; 173.40/119.38 196[label="absReal1 (Integer vuz28) (not (primCmpInt vuz29 (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5427[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5427[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5427 -> 211[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5428[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5428[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5428 -> 212[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 326[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];326 -> 364[label="",style="solid", color="black", weight=3]; 173.40/119.38 327[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];327 -> 365[label="",style="solid", color="black", weight=3]; 173.40/119.38 328[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];328 -> 366[label="",style="solid", color="black", weight=3]; 173.40/119.38 329[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];329 -> 367[label="",style="solid", color="black", weight=3]; 173.40/119.38 703 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.38 703[label="primEqNat vuz16000 vuz47000",fontsize=16,color="magenta"];703 -> 789[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 703 -> 790[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 704[label="False",fontsize=16,color="green",shape="box"];705[label="False",fontsize=16,color="green",shape="box"];706[label="True",fontsize=16,color="green",shape="box"];201[label="signumReal2 vuz26 (vuz26 == fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];201 -> 217[label="",style="solid", color="black", weight=3]; 173.40/119.38 202[label="primQuotInt (Pos vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];202 -> 218[label="",style="solid", color="black", weight=3]; 173.40/119.38 203[label="primQuotInt (Neg vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];203 -> 219[label="",style="solid", color="black", weight=3]; 173.40/119.38 204[label="Integer vuz30 * signumReal3 (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal3 (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];204 -> 220[label="",style="solid", color="black", weight=3]; 173.40/119.38 206[label="absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * vuz14)) (absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5429[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];206 -> 5429[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5429 -> 222[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 207[label="Succ (Succ (primPlusNat vuz1700 vuz41000))",fontsize=16,color="green",shape="box"];207 -> 223[label="",style="dashed", color="green", weight=3]; 173.40/119.38 208[label="Succ vuz1700",fontsize=16,color="green",shape="box"];209[label="Succ vuz41000",fontsize=16,color="green",shape="box"];210[label="Zero",fontsize=16,color="green",shape="box"];211[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5430[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];211 -> 5430[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5430 -> 224[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5431[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];211 -> 5431[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5431 -> 225[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 212[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5432[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];212 -> 5432[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5432 -> 226[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5433[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 5433[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5433 -> 227[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 364[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpNat (Succ vuz2500) Zero == LT))",fontsize=16,color="black",shape="box"];364 -> 391[label="",style="solid", color="black", weight=3]; 173.40/119.38 365[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];365 -> 392[label="",style="solid", color="black", weight=3]; 173.40/119.38 366[label="absReal1 (Neg (Succ vuz2500)) (not (LT == LT))",fontsize=16,color="black",shape="box"];366 -> 393[label="",style="solid", color="black", weight=3]; 173.40/119.38 367[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];367 -> 394[label="",style="solid", color="black", weight=3]; 173.40/119.38 789[label="vuz47000",fontsize=16,color="green",shape="box"];790[label="vuz16000",fontsize=16,color="green",shape="box"];217[label="signumReal2 vuz26 (primEqInt vuz26 (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5434[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5434[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5434 -> 232[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5435[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5435[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5435 -> 233[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 218[label="primQuotInt (Pos vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];218 -> 234[label="",style="solid", color="black", weight=3]; 173.40/119.38 219[label="primQuotInt (Neg vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];219 -> 235[label="",style="solid", color="black", weight=3]; 173.40/119.38 220[label="Integer vuz30 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero))) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5436[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];220 -> 5436[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5436 -> 236[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 222[label="absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * Integer vuz140)) (absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];222 -> 238[label="",style="solid", color="black", weight=3]; 173.40/119.38 223 -> 150[label="",style="dashed", color="red", weight=0]; 173.40/119.38 223[label="primPlusNat vuz1700 vuz41000",fontsize=16,color="magenta"];223 -> 239[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 223 -> 240[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 224[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];224 -> 241[label="",style="solid", color="black", weight=3]; 173.40/119.38 225[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];225 -> 242[label="",style="solid", color="black", weight=3]; 173.40/119.38 226[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 243[label="",style="solid", color="black", weight=3]; 173.40/119.38 227[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];227 -> 244[label="",style="solid", color="black", weight=3]; 173.40/119.38 391[label="absReal1 (Pos (Succ vuz2500)) (not (GT == LT))",fontsize=16,color="black",shape="box"];391 -> 420[label="",style="solid", color="black", weight=3]; 173.40/119.38 392[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 173.40/119.38 393[label="absReal1 (Neg (Succ vuz2500)) (not True)",fontsize=16,color="black",shape="box"];393 -> 422[label="",style="solid", color="black", weight=3]; 173.40/119.38 394[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];394 -> 423[label="",style="solid", color="black", weight=3]; 173.40/119.38 232[label="signumReal2 (Pos vuz260) (primEqInt (Pos vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5437[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];232 -> 5437[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5437 -> 249[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5438[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];232 -> 5438[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5438 -> 250[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 233[label="signumReal2 (Neg vuz260) (primEqInt (Neg vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5439[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];233 -> 5439[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5439 -> 251[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5440[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];233 -> 5440[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5440 -> 252[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 234[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5441[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5441[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5441 -> 253[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5442[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5442[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5442 -> 254[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 235[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5443[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5443[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5443 -> 255[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5444[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5444[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5444 -> 256[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 236[label="Integer vuz30 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero))) (abs (Integer vuz130 * vuz14))",fontsize=16,color="burlywood",shape="box"];5445[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];236 -> 5445[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5445 -> 257[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 238 -> 260[label="",style="dashed", color="red", weight=0]; 173.40/119.38 238[label="absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer (primMulInt vuz130 vuz140))) (absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];238 -> 261[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 238 -> 262[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 238 -> 263[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 238 -> 264[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 238 -> 265[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 239[label="vuz1700",fontsize=16,color="green",shape="box"];240[label="vuz41000",fontsize=16,color="green",shape="box"];241[label="absReal1 (Integer vuz28) (not (primCmpNat (Succ vuz2900) Zero == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];241 -> 266[label="",style="solid", color="black", weight=3]; 173.40/119.38 242[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];242 -> 267[label="",style="solid", color="black", weight=3]; 173.40/119.38 243[label="absReal1 (Integer vuz28) (not (LT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 268[label="",style="solid", color="black", weight=3]; 173.40/119.38 244 -> 242[label="",style="dashed", color="red", weight=0]; 173.40/119.38 244[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];420[label="absReal1 (Pos (Succ vuz2500)) (not False)",fontsize=16,color="black",shape="box"];420 -> 460[label="",style="solid", color="black", weight=3]; 173.40/119.38 421[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];421 -> 461[label="",style="solid", color="black", weight=3]; 173.40/119.38 422[label="absReal1 (Neg (Succ vuz2500)) False",fontsize=16,color="black",shape="box"];422 -> 462[label="",style="solid", color="black", weight=3]; 173.40/119.38 423[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];423 -> 463[label="",style="solid", color="black", weight=3]; 173.40/119.38 249[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];249 -> 273[label="",style="solid", color="black", weight=3]; 173.40/119.38 250[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];250 -> 274[label="",style="solid", color="black", weight=3]; 173.40/119.38 251[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];251 -> 275[label="",style="solid", color="black", weight=3]; 173.40/119.38 252[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];252 -> 276[label="",style="solid", color="black", weight=3]; 173.40/119.38 253[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5446[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];253 -> 5446[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5446 -> 277[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5447[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];253 -> 5447[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5447 -> 278[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 254[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5448[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];254 -> 5448[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5448 -> 279[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5449[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];254 -> 5449[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5449 -> 280[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 255[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5450[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];255 -> 5450[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5450 -> 281[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5451[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];255 -> 5451[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5451 -> 282[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 256[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5452[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];256 -> 5452[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5452 -> 283[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5453[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];256 -> 5453[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5453 -> 284[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 257[label="Integer vuz30 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero))) (abs (Integer vuz130 * Integer vuz140))",fontsize=16,color="black",shape="box"];257 -> 285[label="",style="solid", color="black", weight=3]; 173.40/119.38 261 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 261[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];261 -> 290[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 261 -> 291[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 262 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 262[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];262 -> 292[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 262 -> 293[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 263 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 263[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];263 -> 294[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 263 -> 295[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 264 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 264[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 265 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 265[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];265 -> 298[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 265 -> 299[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 260[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="triangle"];260 -> 300[label="",style="solid", color="black", weight=3]; 173.40/119.38 266[label="absReal1 (Integer vuz28) (not (GT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];266 -> 301[label="",style="solid", color="black", weight=3]; 173.40/119.38 267[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];267 -> 302[label="",style="solid", color="black", weight=3]; 173.40/119.38 268[label="absReal1 (Integer vuz28) (not True) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];268 -> 303[label="",style="solid", color="black", weight=3]; 173.40/119.38 460[label="absReal1 (Pos (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];460 -> 504[label="",style="solid", color="black", weight=3]; 173.40/119.38 461[label="Pos Zero",fontsize=16,color="green",shape="box"];462[label="absReal0 (Neg (Succ vuz2500)) otherwise",fontsize=16,color="black",shape="box"];462 -> 505[label="",style="solid", color="black", weight=3]; 173.40/119.38 463[label="Neg Zero",fontsize=16,color="green",shape="box"];273[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];273 -> 308[label="",style="solid", color="black", weight=3]; 173.40/119.38 274[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];274 -> 309[label="",style="solid", color="black", weight=3]; 173.40/119.38 275[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];275 -> 310[label="",style="solid", color="black", weight=3]; 173.40/119.38 276[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];276 -> 311[label="",style="solid", color="black", weight=3]; 173.40/119.38 277[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];277 -> 312[label="",style="solid", color="black", weight=3]; 173.40/119.38 278[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];278 -> 313[label="",style="solid", color="black", weight=3]; 173.40/119.38 279[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];279 -> 314[label="",style="solid", color="black", weight=3]; 173.40/119.38 280[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];280 -> 315[label="",style="solid", color="black", weight=3]; 173.40/119.38 281[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];281 -> 316[label="",style="solid", color="black", weight=3]; 173.40/119.38 282[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];282 -> 317[label="",style="solid", color="black", weight=3]; 173.40/119.38 283[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];283 -> 318[label="",style="solid", color="black", weight=3]; 173.40/119.38 284[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];284 -> 319[label="",style="solid", color="black", weight=3]; 173.40/119.38 285 -> 320[label="",style="dashed", color="red", weight=0]; 173.40/119.38 285[label="Integer vuz30 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero))) (abs (Integer (primMulInt vuz130 vuz140)))",fontsize=16,color="magenta"];285 -> 321[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 285 -> 322[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 285 -> 323[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 285 -> 324[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 285 -> 325[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 290[label="vuz140",fontsize=16,color="green",shape="box"];291[label="vuz130",fontsize=16,color="green",shape="box"];292[label="vuz140",fontsize=16,color="green",shape="box"];293[label="vuz130",fontsize=16,color="green",shape="box"];294[label="vuz140",fontsize=16,color="green",shape="box"];295[label="vuz130",fontsize=16,color="green",shape="box"];296[label="vuz140",fontsize=16,color="green",shape="box"];297[label="vuz130",fontsize=16,color="green",shape="box"];298[label="vuz140",fontsize=16,color="green",shape="box"];299[label="vuz130",fontsize=16,color="green",shape="box"];300[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (Integer (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (Integer (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];300 -> 330[label="",style="solid", color="black", weight=3]; 173.40/119.38 301 -> 267[label="",style="dashed", color="red", weight=0]; 173.40/119.38 301[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="magenta"];302[label="absReal1 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];302 -> 331[label="",style="solid", color="black", weight=3]; 173.40/119.38 303[label="absReal1 (Integer vuz28) False == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];303 -> 332[label="",style="solid", color="black", weight=3]; 173.40/119.38 504[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];505[label="absReal0 (Neg (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];505 -> 542[label="",style="solid", color="black", weight=3]; 173.40/119.38 308[label="signumReal2 (Pos (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];308 -> 337[label="",style="solid", color="black", weight=3]; 173.40/119.38 309[label="signumReal2 (Pos Zero) True",fontsize=16,color="black",shape="box"];309 -> 338[label="",style="solid", color="black", weight=3]; 173.40/119.38 310[label="signumReal2 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];310 -> 339[label="",style="solid", color="black", weight=3]; 173.40/119.38 311[label="signumReal2 (Neg Zero) True",fontsize=16,color="black",shape="box"];311 -> 340[label="",style="solid", color="black", weight=3]; 173.40/119.38 312[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];312 -> 341[label="",style="solid", color="black", weight=3]; 173.40/119.38 313 -> 342[label="",style="dashed", color="red", weight=0]; 173.40/119.38 313[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];313 -> 343[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 314[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];314 -> 344[label="",style="solid", color="black", weight=3]; 173.40/119.38 315 -> 345[label="",style="dashed", color="red", weight=0]; 173.40/119.38 315[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];315 -> 346[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 316[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];316 -> 347[label="",style="solid", color="black", weight=3]; 173.40/119.38 317 -> 348[label="",style="dashed", color="red", weight=0]; 173.40/119.38 317[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];317 -> 349[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 318[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];318 -> 350[label="",style="solid", color="black", weight=3]; 173.40/119.38 319 -> 351[label="",style="dashed", color="red", weight=0]; 173.40/119.38 319[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];319 -> 352[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 321 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 321[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];321 -> 353[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 321 -> 354[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 322 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 322[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];322 -> 355[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 322 -> 356[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 323 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 323[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];323 -> 357[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 323 -> 358[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 324 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 324[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];324 -> 359[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 324 -> 360[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 325 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 325[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];325 -> 361[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 325 -> 362[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 320[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];320 -> 363[label="",style="solid", color="black", weight=3]; 173.40/119.38 330[label="absReal1 (Integer vuz32) (not (primCmpInt vuz35 (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt vuz35 (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5454[label="vuz35/Pos vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5454[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5454 -> 368[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5455[label="vuz35/Neg vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5455[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5455 -> 369[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 331[label="Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];331 -> 370[label="",style="solid", color="black", weight=3]; 173.40/119.38 332[label="absReal0 (Integer vuz28) otherwise == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];332 -> 371[label="",style="solid", color="black", weight=3]; 173.40/119.38 542[label="`negate` Neg (Succ vuz2500)",fontsize=16,color="black",shape="box"];542 -> 577[label="",style="solid", color="black", weight=3]; 173.40/119.38 337[label="signumReal1 (Pos (Succ vuz2600)) (Pos (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];337 -> 374[label="",style="solid", color="black", weight=3]; 173.40/119.38 339 -> 376[label="",style="dashed", color="red", weight=0]; 173.40/119.38 339[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="magenta"];339 -> 377[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 340 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 340[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];341[label="primQuotInt (Pos vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];341 -> 378[label="",style="solid", color="black", weight=3]; 173.40/119.38 343 -> 305[label="",style="dashed", color="red", weight=0]; 173.40/119.38 343[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];342[label="primQuotInt (Pos vuz180) (gcd2 vuz42 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5456[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];342 -> 5456[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5456 -> 379[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5457[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];342 -> 5457[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5457 -> 380[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 344[label="primQuotInt (Pos vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];344 -> 381[label="",style="solid", color="black", weight=3]; 173.40/119.38 346 -> 307[label="",style="dashed", color="red", weight=0]; 173.40/119.38 346[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];345[label="primQuotInt (Pos vuz180) (gcd2 vuz43 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5458[label="vuz43/False",fontsize=10,color="white",style="solid",shape="box"];345 -> 5458[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5458 -> 382[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5459[label="vuz43/True",fontsize=10,color="white",style="solid",shape="box"];345 -> 5459[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5459 -> 383[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 347[label="primQuotInt (Neg vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];347 -> 384[label="",style="solid", color="black", weight=3]; 173.40/119.38 349 -> 305[label="",style="dashed", color="red", weight=0]; 173.40/119.38 349[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];348[label="primQuotInt (Neg vuz180) (gcd2 vuz44 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5460[label="vuz44/False",fontsize=10,color="white",style="solid",shape="box"];348 -> 5460[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5460 -> 385[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5461[label="vuz44/True",fontsize=10,color="white",style="solid",shape="box"];348 -> 5461[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5461 -> 386[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 350[label="primQuotInt (Neg vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];350 -> 387[label="",style="solid", color="black", weight=3]; 173.40/119.38 352 -> 307[label="",style="dashed", color="red", weight=0]; 173.40/119.38 352[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];351[label="primQuotInt (Neg vuz180) (gcd2 vuz45 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5462[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 5462[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5462 -> 388[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5463[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 5463[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5463 -> 389[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 353[label="vuz140",fontsize=16,color="green",shape="box"];354[label="vuz130",fontsize=16,color="green",shape="box"];355[label="vuz140",fontsize=16,color="green",shape="box"];356[label="vuz130",fontsize=16,color="green",shape="box"];357[label="vuz140",fontsize=16,color="green",shape="box"];358[label="vuz130",fontsize=16,color="green",shape="box"];359[label="vuz140",fontsize=16,color="green",shape="box"];360[label="vuz130",fontsize=16,color="green",shape="box"];361[label="vuz140",fontsize=16,color="green",shape="box"];362[label="vuz130",fontsize=16,color="green",shape="box"];363[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == Integer (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == Integer (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];363 -> 390[label="",style="solid", color="black", weight=3]; 173.40/119.38 368[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5464[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];368 -> 5464[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5464 -> 395[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5465[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];368 -> 5465[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5465 -> 396[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 369[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5466[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];369 -> 5466[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5466 -> 397[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5467[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];369 -> 5467[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5467 -> 398[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 370[label="Integer vuz28 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];370 -> 399[label="",style="solid", color="black", weight=3]; 173.40/119.38 371[label="absReal0 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];371 -> 400[label="",style="solid", color="black", weight=3]; 173.40/119.38 577 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.38 577[label="primNegInt (Neg (Succ vuz2500))",fontsize=16,color="magenta"];577 -> 624[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 374 -> 403[label="",style="dashed", color="red", weight=0]; 173.40/119.38 374[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];374 -> 404[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 377 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 377[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];376[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > vuz46)",fontsize=16,color="black",shape="triangle"];376 -> 405[label="",style="solid", color="black", weight=3]; 173.40/119.38 378[label="primQuotInt (Pos vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];378 -> 406[label="",style="solid", color="black", weight=3]; 173.40/119.38 305[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];305 -> 334[label="",style="solid", color="black", weight=3]; 173.40/119.38 379[label="primQuotInt (Pos vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];379 -> 407[label="",style="solid", color="black", weight=3]; 173.40/119.38 380[label="primQuotInt (Pos vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];380 -> 408[label="",style="solid", color="black", weight=3]; 173.40/119.38 381[label="primQuotInt (Pos vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];381 -> 409[label="",style="solid", color="black", weight=3]; 173.40/119.38 307[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];307 -> 336[label="",style="solid", color="black", weight=3]; 173.40/119.38 382[label="primQuotInt (Pos vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];382 -> 410[label="",style="solid", color="black", weight=3]; 173.40/119.38 383[label="primQuotInt (Pos vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];383 -> 411[label="",style="solid", color="black", weight=3]; 173.40/119.38 384[label="primQuotInt (Neg vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];384 -> 412[label="",style="solid", color="black", weight=3]; 173.40/119.38 385[label="primQuotInt (Neg vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];385 -> 413[label="",style="solid", color="black", weight=3]; 173.40/119.38 386[label="primQuotInt (Neg vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];386 -> 414[label="",style="solid", color="black", weight=3]; 173.40/119.38 387[label="primQuotInt (Neg vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];387 -> 415[label="",style="solid", color="black", weight=3]; 173.40/119.38 388[label="primQuotInt (Neg vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];388 -> 416[label="",style="solid", color="black", weight=3]; 173.40/119.38 389[label="primQuotInt (Neg vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];389 -> 417[label="",style="solid", color="black", weight=3]; 173.40/119.38 390[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt vuz40 (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt vuz40 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5468[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5468[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5468 -> 418[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5469[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5469[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5469 -> 419[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 395[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];395 -> 424[label="",style="solid", color="black", weight=3]; 173.40/119.38 396[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];396 -> 425[label="",style="solid", color="black", weight=3]; 173.40/119.38 397[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];397 -> 426[label="",style="solid", color="black", weight=3]; 173.40/119.38 398[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];398 -> 427[label="",style="solid", color="black", weight=3]; 173.40/119.38 399[label="primEqInt vuz28 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5470[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5470[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5470 -> 428[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5471[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5471[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5471 -> 429[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 400[label="`negate` Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];400 -> 430[label="",style="solid", color="black", weight=3]; 173.40/119.38 624[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];471[label="primNegInt vuz28",fontsize=16,color="burlywood",shape="triangle"];5472[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5472[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5472 -> 513[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5473[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5473[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5473 -> 514[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 404 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 404[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];403[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="black",shape="triangle"];403 -> 432[label="",style="solid", color="black", weight=3]; 173.40/119.38 405[label="signumReal1 (Neg (Succ vuz2600)) (compare (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="black",shape="box"];405 -> 433[label="",style="solid", color="black", weight=3]; 173.40/119.38 406 -> 434[label="",style="dashed", color="red", weight=0]; 173.40/119.38 406[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];406 -> 435[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 406 -> 436[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 334[label="True",fontsize=16,color="green",shape="box"];407[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];407 -> 439[label="",style="solid", color="black", weight=3]; 173.40/119.38 408 -> 440[label="",style="dashed", color="red", weight=0]; 173.40/119.38 408[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];408 -> 441[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 409 -> 434[label="",style="dashed", color="red", weight=0]; 173.40/119.38 409[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];409 -> 437[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 409 -> 438[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 336[label="True",fontsize=16,color="green",shape="box"];410[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];410 -> 442[label="",style="solid", color="black", weight=3]; 173.40/119.38 411 -> 443[label="",style="dashed", color="red", weight=0]; 173.40/119.38 411[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];411 -> 444[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 412 -> 445[label="",style="dashed", color="red", weight=0]; 173.40/119.38 412[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];412 -> 446[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 412 -> 447[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 413[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];413 -> 450[label="",style="solid", color="black", weight=3]; 173.40/119.38 414 -> 451[label="",style="dashed", color="red", weight=0]; 173.40/119.38 414[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];414 -> 452[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 415 -> 445[label="",style="dashed", color="red", weight=0]; 173.40/119.38 415[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];415 -> 448[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 415 -> 449[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 416[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];416 -> 453[label="",style="solid", color="black", weight=3]; 173.40/119.38 417 -> 454[label="",style="dashed", color="red", weight=0]; 173.40/119.38 417[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];417 -> 455[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 418[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5474[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];418 -> 5474[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5474 -> 456[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5475[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 5475[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5475 -> 457[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 419[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5476[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];419 -> 5476[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5476 -> 458[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5477[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];419 -> 5477[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5477 -> 459[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 424[label="absReal1 (Integer vuz32) (not (primCmpNat (Succ vuz3500) Zero == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpNat (Succ vuz3500) Zero == LT)))",fontsize=16,color="black",shape="box"];424 -> 464[label="",style="solid", color="black", weight=3]; 173.40/119.38 425[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];425 -> 465[label="",style="solid", color="black", weight=3]; 173.40/119.38 426[label="absReal1 (Integer vuz32) (not (LT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (LT == LT)))",fontsize=16,color="black",shape="box"];426 -> 466[label="",style="solid", color="black", weight=3]; 173.40/119.38 427 -> 425[label="",style="dashed", color="red", weight=0]; 173.40/119.38 427[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="magenta"];428[label="primEqInt (Pos vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5478[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];428 -> 5478[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5478 -> 467[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5479[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];428 -> 5479[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5479 -> 468[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 429[label="primEqInt (Neg vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5480[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];429 -> 5480[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5480 -> 469[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5481[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];429 -> 5481[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5481 -> 470[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 430 -> 331[label="",style="dashed", color="red", weight=0]; 173.40/119.38 430[label="Integer (primNegInt vuz28) == fromInt (Pos Zero)",fontsize=16,color="magenta"];430 -> 471[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 513[label="primNegInt (Pos vuz280)",fontsize=16,color="black",shape="box"];513 -> 545[label="",style="solid", color="black", weight=3]; 173.40/119.38 514[label="primNegInt (Neg vuz280)",fontsize=16,color="black",shape="box"];514 -> 546[label="",style="solid", color="black", weight=3]; 173.40/119.38 432[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="burlywood",shape="box"];5482[label="vuz48/Pos vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5482[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5482 -> 474[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5483[label="vuz48/Neg vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5483[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5483 -> 475[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 433[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="burlywood",shape="box"];5484[label="vuz46/Pos vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5484[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5484 -> 476[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5485[label="vuz46/Neg vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5485[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5485 -> 477[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 435 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 435[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];435 -> 478[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 436 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 436[label="abs vuz27",fontsize=16,color="magenta"];436 -> 479[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 434[label="primQuotInt (Pos vuz180) (gcd0Gcd' vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];434 -> 480[label="",style="solid", color="black", weight=3]; 173.40/119.38 439 -> 434[label="",style="dashed", color="red", weight=0]; 173.40/119.38 439[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];439 -> 481[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 439 -> 482[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 441 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 441[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];440[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz51) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];440 -> 483[label="",style="solid", color="black", weight=3]; 173.40/119.38 437 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 437[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];437 -> 484[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 438 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 438[label="abs vuz27",fontsize=16,color="magenta"];438 -> 485[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 442 -> 434[label="",style="dashed", color="red", weight=0]; 173.40/119.38 442[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];442 -> 486[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 442 -> 487[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 444 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 444[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];443[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz52) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];443 -> 488[label="",style="solid", color="black", weight=3]; 173.40/119.38 446 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 446[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];446 -> 489[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 447 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 447[label="abs vuz27",fontsize=16,color="magenta"];447 -> 490[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 445[label="primQuotInt (Neg vuz180) (gcd0Gcd' vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];445 -> 491[label="",style="solid", color="black", weight=3]; 173.40/119.38 450 -> 445[label="",style="dashed", color="red", weight=0]; 173.40/119.38 450[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];450 -> 492[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 450 -> 493[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 452 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 452[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];451[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz55) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];451 -> 494[label="",style="solid", color="black", weight=3]; 173.40/119.38 448 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 448[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];448 -> 495[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 449 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 449[label="abs vuz27",fontsize=16,color="magenta"];449 -> 496[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 453 -> 445[label="",style="dashed", color="red", weight=0]; 173.40/119.38 453[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];453 -> 497[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 453 -> 498[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 455 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 455[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];454[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz56) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];454 -> 499[label="",style="solid", color="black", weight=3]; 173.40/119.38 456[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];456 -> 500[label="",style="solid", color="black", weight=3]; 173.40/119.38 457[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];457 -> 501[label="",style="solid", color="black", weight=3]; 173.40/119.38 458[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];458 -> 502[label="",style="solid", color="black", weight=3]; 173.40/119.38 459[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];459 -> 503[label="",style="solid", color="black", weight=3]; 173.40/119.38 464[label="absReal1 (Integer vuz32) (not (GT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (GT == LT)))",fontsize=16,color="black",shape="box"];464 -> 506[label="",style="solid", color="black", weight=3]; 173.40/119.38 465[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="black",shape="triangle"];465 -> 507[label="",style="solid", color="black", weight=3]; 173.40/119.38 466[label="absReal1 (Integer vuz32) (not True) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not True))",fontsize=16,color="black",shape="box"];466 -> 508[label="",style="solid", color="black", weight=3]; 173.40/119.38 467[label="primEqInt (Pos (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];467 -> 509[label="",style="solid", color="black", weight=3]; 173.40/119.38 468[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];468 -> 510[label="",style="solid", color="black", weight=3]; 173.40/119.38 469[label="primEqInt (Neg (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];469 -> 511[label="",style="solid", color="black", weight=3]; 173.40/119.38 470[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];470 -> 512[label="",style="solid", color="black", weight=3]; 173.40/119.38 545[label="Neg vuz280",fontsize=16,color="green",shape="box"];546[label="Pos vuz280",fontsize=16,color="green",shape="box"];474[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Pos vuz480) == GT)",fontsize=16,color="black",shape="box"];474 -> 518[label="",style="solid", color="black", weight=3]; 173.40/119.38 475[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Neg vuz480) == GT)",fontsize=16,color="black",shape="box"];475 -> 519[label="",style="solid", color="black", weight=3]; 173.40/119.38 476[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Pos vuz460) == GT)",fontsize=16,color="black",shape="box"];476 -> 520[label="",style="solid", color="black", weight=3]; 173.40/119.38 477[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Neg vuz460) == GT)",fontsize=16,color="black",shape="box"];477 -> 521[label="",style="solid", color="black", weight=3]; 173.40/119.38 478[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];479[label="vuz27",fontsize=16,color="green",shape="box"];480[label="primQuotInt (Pos vuz180) (gcd0Gcd'2 vuz50 vuz49)",fontsize=16,color="black",shape="box"];480 -> 522[label="",style="solid", color="black", weight=3]; 173.40/119.38 481 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 481[label="abs (Pos Zero)",fontsize=16,color="magenta"];481 -> 523[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 482 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 482[label="abs vuz27",fontsize=16,color="magenta"];482 -> 524[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 483[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz51) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5486[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5486[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5486 -> 525[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5487[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5487[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5487 -> 526[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 484[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];485[label="vuz27",fontsize=16,color="green",shape="box"];486 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 486[label="abs (Neg Zero)",fontsize=16,color="magenta"];486 -> 527[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 487 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 487[label="abs vuz27",fontsize=16,color="magenta"];487 -> 528[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 488[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz52) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5488[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5488[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5488 -> 529[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5489[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5489[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5489 -> 530[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 489[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];490[label="vuz27",fontsize=16,color="green",shape="box"];491[label="primQuotInt (Neg vuz180) (gcd0Gcd'2 vuz54 vuz53)",fontsize=16,color="black",shape="box"];491 -> 531[label="",style="solid", color="black", weight=3]; 173.40/119.38 492 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 492[label="abs (Pos Zero)",fontsize=16,color="magenta"];492 -> 532[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 493 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 493[label="abs vuz27",fontsize=16,color="magenta"];493 -> 533[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 494[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz55) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5490[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5490[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5490 -> 534[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5491[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5491[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5491 -> 535[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 495[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];496[label="vuz27",fontsize=16,color="green",shape="box"];497 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 497[label="abs (Neg Zero)",fontsize=16,color="magenta"];497 -> 536[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 498 -> 123[label="",style="dashed", color="red", weight=0]; 173.40/119.38 498[label="abs vuz27",fontsize=16,color="magenta"];498 -> 537[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 499[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz56) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5492[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5492[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5492 -> 538[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5493[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5493[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5493 -> 539[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 500[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];500 -> 540[label="",style="solid", color="black", weight=3]; 173.40/119.38 501[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];501 -> 541[label="",style="solid", color="black", weight=3]; 173.40/119.38 502 -> 500[label="",style="dashed", color="red", weight=0]; 173.40/119.38 502[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="magenta"];503 -> 501[label="",style="dashed", color="red", weight=0]; 173.40/119.38 503[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="magenta"];506 -> 465[label="",style="dashed", color="red", weight=0]; 173.40/119.38 506[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="magenta"];507[label="absReal1 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) True)",fontsize=16,color="black",shape="box"];507 -> 543[label="",style="solid", color="black", weight=3]; 173.40/119.38 508[label="absReal1 (Integer vuz32) False `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) False)",fontsize=16,color="black",shape="box"];508 -> 544[label="",style="solid", color="black", weight=3]; 173.40/119.38 509[label="False",fontsize=16,color="green",shape="box"];510[label="True",fontsize=16,color="green",shape="box"];511[label="False",fontsize=16,color="green",shape="box"];512[label="True",fontsize=16,color="green",shape="box"];518 -> 2211[label="",style="dashed", color="red", weight=0]; 173.40/119.38 518[label="signumReal1 (Pos (Succ vuz2600)) (primCmpNat (Succ vuz2600) vuz480 == GT)",fontsize=16,color="magenta"];518 -> 2212[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 518 -> 2213[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 518 -> 2214[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 519[label="signumReal1 (Pos (Succ vuz2600)) (GT == GT)",fontsize=16,color="black",shape="triangle"];519 -> 551[label="",style="solid", color="black", weight=3]; 173.40/119.38 520[label="signumReal1 (Neg (Succ vuz2600)) (LT == GT)",fontsize=16,color="black",shape="triangle"];520 -> 552[label="",style="solid", color="black", weight=3]; 173.40/119.38 521 -> 2267[label="",style="dashed", color="red", weight=0]; 173.40/119.38 521[label="signumReal1 (Neg (Succ vuz2600)) (primCmpNat vuz460 (Succ vuz2600) == GT)",fontsize=16,color="magenta"];521 -> 2268[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 521 -> 2269[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 521 -> 2270[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 522 -> 555[label="",style="dashed", color="red", weight=0]; 173.40/119.38 522[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == fromInt (Pos Zero)) vuz50 vuz49)",fontsize=16,color="magenta"];522 -> 556[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 523[label="Pos Zero",fontsize=16,color="green",shape="box"];524[label="vuz27",fontsize=16,color="green",shape="box"];525[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz51) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5494[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];525 -> 5494[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5494 -> 557[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5495[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 5495[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5495 -> 558[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 526[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz51) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5496[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];526 -> 5496[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5496 -> 559[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5497[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 5497[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5497 -> 560[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 527[label="Neg Zero",fontsize=16,color="green",shape="box"];528[label="vuz27",fontsize=16,color="green",shape="box"];529[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz52) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5498[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];529 -> 5498[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5498 -> 561[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5499[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];529 -> 5499[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5499 -> 562[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 530[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz52) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5500[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];530 -> 5500[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5500 -> 563[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5501[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];530 -> 5501[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5501 -> 564[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 531 -> 565[label="",style="dashed", color="red", weight=0]; 173.40/119.38 531[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == fromInt (Pos Zero)) vuz54 vuz53)",fontsize=16,color="magenta"];531 -> 566[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 532[label="Pos Zero",fontsize=16,color="green",shape="box"];533[label="vuz27",fontsize=16,color="green",shape="box"];534[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz55) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5502[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];534 -> 5502[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5502 -> 567[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5503[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];534 -> 5503[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5503 -> 568[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 535[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz55) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5504[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];535 -> 5504[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5504 -> 569[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5505[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];535 -> 5505[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5505 -> 570[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 536[label="Neg Zero",fontsize=16,color="green",shape="box"];537[label="vuz27",fontsize=16,color="green",shape="box"];538[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz56) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5506[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];538 -> 5506[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5506 -> 571[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5507[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];538 -> 5507[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5507 -> 572[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 539[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz56) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5508[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];539 -> 5508[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5508 -> 573[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5509[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];539 -> 5509[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5509 -> 574[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 540[label="Integer vuz30 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];540 -> 575[label="",style="solid", color="black", weight=3]; 173.40/119.38 541[label="Integer vuz30 * fromInt (Pos Zero) `quot` reduce2D (Integer vuz31 * fromInt (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];541 -> 576[label="",style="solid", color="black", weight=3]; 173.40/119.38 543[label="Integer vuz32 `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];543 -> 578[label="",style="solid", color="black", weight=3]; 173.40/119.38 544[label="absReal0 (Integer vuz32) otherwise `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) otherwise)",fontsize=16,color="black",shape="box"];544 -> 579[label="",style="solid", color="black", weight=3]; 173.40/119.38 2212[label="vuz2600",fontsize=16,color="green",shape="box"];2213[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2214[label="vuz480",fontsize=16,color="green",shape="box"];2211[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz135 vuz136 == GT)",fontsize=16,color="burlywood",shape="triangle"];5510[label="vuz135/Succ vuz1350",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5510[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5510 -> 2242[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5511[label="vuz135/Zero",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5511[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5511 -> 2243[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 551[label="signumReal1 (Pos (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];551 -> 584[label="",style="solid", color="black", weight=3]; 173.40/119.38 552[label="signumReal1 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="triangle"];552 -> 585[label="",style="solid", color="black", weight=3]; 173.40/119.38 2268[label="vuz2600",fontsize=16,color="green",shape="box"];2269[label="vuz460",fontsize=16,color="green",shape="box"];2270[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2267[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz139 vuz140 == GT)",fontsize=16,color="burlywood",shape="triangle"];5512[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5512[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5512 -> 2298[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5513[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5513[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5513 -> 2299[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 556 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 556[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];555[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == vuz57) vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];555 -> 588[label="",style="solid", color="black", weight=3]; 173.40/119.38 557[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz51) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5514[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5514[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5514 -> 589[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5515[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5515[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5515 -> 590[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 558[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz51) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5516[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5516[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5516 -> 591[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5517[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5517[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5517 -> 592[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 559[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz51) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5518[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5518[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5518 -> 593[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5519[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5519[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5519 -> 594[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 560[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz51) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5520[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5520[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5520 -> 595[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5521[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5521[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5521 -> 596[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 561[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz52) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5522[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5522[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5522 -> 597[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5523[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5523[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5523 -> 598[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 562[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz52) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5524[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5524[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5524 -> 599[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5525[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5525[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5525 -> 600[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 563[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz52) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5526[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5526[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5526 -> 601[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5527[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5527[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5527 -> 602[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 564[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz52) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5528[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5528[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5528 -> 603[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5529[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5529[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5529 -> 604[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 566 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.38 566[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];565[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == vuz58) vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];565 -> 605[label="",style="solid", color="black", weight=3]; 173.40/119.38 567[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz55) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5530[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5530[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5530 -> 606[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5531[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5531[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5531 -> 607[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 568[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz55) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5532[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5532[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5532 -> 608[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5533[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5533[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5533 -> 609[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 569[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz55) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5534[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5534[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5534 -> 610[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5535[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5535[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5535 -> 611[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 570[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz55) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5536[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5536[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5536 -> 612[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5537[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5537[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5537 -> 613[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 571[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz56) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5538[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5538[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5538 -> 614[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5539[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5539[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5539 -> 615[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 572[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz56) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5540[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5540[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5540 -> 616[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5541[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5541[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5541 -> 617[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 573[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz56) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5542[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5542[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5542 -> 618[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5543[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5543[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5543 -> 619[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 574[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz56) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5544[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5544[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5544 -> 620[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5545[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5545[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5545 -> 621[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 575[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];575 -> 622[label="",style="solid", color="black", weight=3]; 173.40/119.38 576[label="Integer vuz30 * Integer (Pos Zero) `quot` reduce2D (Integer vuz31 * Integer (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];576 -> 623[label="",style="solid", color="black", weight=3]; 173.40/119.38 578[label="Integer vuz32 `quot` gcd (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];578 -> 625[label="",style="solid", color="black", weight=3]; 173.40/119.38 579[label="absReal0 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) True)",fontsize=16,color="black",shape="box"];579 -> 626[label="",style="solid", color="black", weight=3]; 173.40/119.38 2242[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5546[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5546[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5546 -> 2300[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5547[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5547[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5547 -> 2301[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 2243[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5548[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5548[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5548 -> 2302[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5549[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5549[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5549 -> 2303[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 584[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];584 -> 633[label="",style="solid", color="black", weight=3]; 173.40/119.38 585[label="signumReal0 (Neg (Succ vuz2600)) otherwise",fontsize=16,color="black",shape="box"];585 -> 634[label="",style="solid", color="black", weight=3]; 173.40/119.38 2298[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5550[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5550[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5550 -> 2333[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5551[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5551[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5551 -> 2334[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 2299[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5552[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5552[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5552 -> 2335[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5553[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5553[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5553 -> 2336[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 588[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt vuz49 vuz57) vuz50 vuz49)",fontsize=16,color="burlywood",shape="box"];5554[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5554[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5554 -> 637[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5555[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5555[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5555 -> 638[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 589[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5556[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];589 -> 5556[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5556 -> 639[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5557[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 5557[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5557 -> 640[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 590[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];590 -> 641[label="",style="solid", color="black", weight=3]; 173.40/119.38 591[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5558[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];591 -> 5558[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5558 -> 642[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5559[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 5559[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5559 -> 643[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 592[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5560[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];592 -> 5560[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5560 -> 644[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5561[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];592 -> 5561[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5561 -> 645[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 593[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];593 -> 646[label="",style="solid", color="black", weight=3]; 173.40/119.38 594[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5562[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];594 -> 5562[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5562 -> 647[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5563[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 5563[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5563 -> 648[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 595[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5564[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];595 -> 5564[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5564 -> 649[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5565[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];595 -> 5565[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5565 -> 650[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 596[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5566[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];596 -> 5566[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5566 -> 651[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5567[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 5567[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5567 -> 652[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 597[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5568[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];597 -> 5568[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5568 -> 653[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5569[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 5569[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5569 -> 654[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 598[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];598 -> 655[label="",style="solid", color="black", weight=3]; 173.40/119.38 599[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5570[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];599 -> 5570[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5570 -> 656[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5571[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];599 -> 5571[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5571 -> 657[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 600[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5572[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];600 -> 5572[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5572 -> 658[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5573[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];600 -> 5573[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5573 -> 659[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 601[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];601 -> 660[label="",style="solid", color="black", weight=3]; 173.40/119.38 602[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5574[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];602 -> 5574[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5574 -> 661[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5575[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];602 -> 5575[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5575 -> 662[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 603[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5576[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];603 -> 5576[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5576 -> 663[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5577[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];603 -> 5577[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5577 -> 664[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 604[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5578[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];604 -> 5578[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5578 -> 665[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5579[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];604 -> 5579[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5579 -> 666[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 605[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt vuz53 vuz58) vuz54 vuz53)",fontsize=16,color="burlywood",shape="box"];5580[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5580[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5580 -> 667[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5581[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5581[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5581 -> 668[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 606[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5582[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];606 -> 5582[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5582 -> 669[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5583[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];606 -> 5583[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5583 -> 670[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 607[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];607 -> 671[label="",style="solid", color="black", weight=3]; 173.40/119.38 608[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5584[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];608 -> 5584[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5584 -> 672[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5585[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];608 -> 5585[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5585 -> 673[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 609[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5586[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];609 -> 5586[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5586 -> 674[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5587[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 5587[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5587 -> 675[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 610[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];610 -> 676[label="",style="solid", color="black", weight=3]; 173.40/119.38 611[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5588[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];611 -> 5588[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5588 -> 677[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5589[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];611 -> 5589[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5589 -> 678[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 612[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5590[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];612 -> 5590[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5590 -> 679[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5591[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];612 -> 5591[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5591 -> 680[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 613[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5592[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];613 -> 5592[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5592 -> 681[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5593[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];613 -> 5593[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5593 -> 682[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 614[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5594[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];614 -> 5594[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5594 -> 683[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5595[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];614 -> 5595[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5595 -> 684[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 615[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];615 -> 685[label="",style="solid", color="black", weight=3]; 173.40/119.38 616[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5596[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];616 -> 5596[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5596 -> 686[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5597[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 5597[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5597 -> 687[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 617[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5598[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];617 -> 5598[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5598 -> 688[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5599[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 5599[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5599 -> 689[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 618[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];618 -> 690[label="",style="solid", color="black", weight=3]; 173.40/119.38 619[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5600[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];619 -> 5600[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5600 -> 691[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5601[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];619 -> 5601[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5601 -> 692[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 620[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5602[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];620 -> 5602[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5602 -> 693[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5603[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];620 -> 5603[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5603 -> 694[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 621[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5604[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];621 -> 5604[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5604 -> 695[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5605[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];621 -> 5605[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5605 -> 696[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 622[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];622 -> 697[label="",style="solid", color="black", weight=3]; 173.40/119.38 623 -> 698[label="",style="dashed", color="red", weight=0]; 173.40/119.38 623[label="Integer (primMulInt vuz30 (Pos Zero)) `quot` reduce2D (Integer (primMulInt vuz30 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];623 -> 699[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 623 -> 700[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 625[label="Integer vuz32 `quot` gcd3 (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];625 -> 701[label="",style="solid", color="black", weight=3]; 173.40/119.38 626[label="(`negate` Integer vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (`negate` Integer vuz32)",fontsize=16,color="black",shape="box"];626 -> 702[label="",style="solid", color="black", weight=3]; 173.40/119.38 2300[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2300 -> 2337[label="",style="solid", color="black", weight=3]; 173.40/119.38 2301[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) Zero == GT)",fontsize=16,color="black",shape="box"];2301 -> 2338[label="",style="solid", color="black", weight=3]; 173.40/119.38 2302[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2302 -> 2339[label="",style="solid", color="black", weight=3]; 173.40/119.38 2303[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2303 -> 2340[label="",style="solid", color="black", weight=3]; 173.40/119.38 633[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];634[label="signumReal0 (Neg (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];634 -> 711[label="",style="solid", color="black", weight=3]; 173.40/119.38 2333[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2333 -> 2371[label="",style="solid", color="black", weight=3]; 173.40/119.38 2334[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) Zero == GT)",fontsize=16,color="black",shape="box"];2334 -> 2372[label="",style="solid", color="black", weight=3]; 173.40/119.38 2335[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2335 -> 2373[label="",style="solid", color="black", weight=3]; 173.40/119.38 2336[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2336 -> 2374[label="",style="solid", color="black", weight=3]; 173.40/119.38 637[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz490) vuz57) vuz50 (Pos vuz490))",fontsize=16,color="burlywood",shape="box"];5606[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];637 -> 5606[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5606 -> 716[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5607[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];637 -> 5607[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5607 -> 717[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 638[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz490) vuz57) vuz50 (Neg vuz490))",fontsize=16,color="burlywood",shape="box"];5608[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];638 -> 5608[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5608 -> 718[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5609[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];638 -> 5609[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5609 -> 719[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 639[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5100))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];639 -> 720[label="",style="solid", color="black", weight=3]; 173.40/119.38 640[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];640 -> 721[label="",style="solid", color="black", weight=3]; 173.40/119.38 641 -> 808[label="",style="dashed", color="red", weight=0]; 173.40/119.38 641[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];641 -> 809[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 642[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];642 -> 723[label="",style="solid", color="black", weight=3]; 173.40/119.38 643[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];643 -> 724[label="",style="solid", color="black", weight=3]; 173.40/119.38 644[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];644 -> 725[label="",style="solid", color="black", weight=3]; 173.40/119.38 645[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];645 -> 726[label="",style="solid", color="black", weight=3]; 173.40/119.38 646 -> 817[label="",style="dashed", color="red", weight=0]; 173.40/119.38 646[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];646 -> 818[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 647[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5100))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];647 -> 728[label="",style="solid", color="black", weight=3]; 173.40/119.38 648[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];648 -> 729[label="",style="solid", color="black", weight=3]; 173.40/119.38 649[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];649 -> 730[label="",style="solid", color="black", weight=3]; 173.40/119.38 650[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];650 -> 731[label="",style="solid", color="black", weight=3]; 173.40/119.38 651[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];651 -> 732[label="",style="solid", color="black", weight=3]; 173.40/119.38 652[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];652 -> 733[label="",style="solid", color="black", weight=3]; 173.40/119.38 653[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5200))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];653 -> 734[label="",style="solid", color="black", weight=3]; 173.40/119.38 654[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];654 -> 735[label="",style="solid", color="black", weight=3]; 173.40/119.38 655 -> 825[label="",style="dashed", color="red", weight=0]; 173.40/119.38 655[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];655 -> 826[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 656[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];656 -> 737[label="",style="solid", color="black", weight=3]; 173.40/119.38 657[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];657 -> 738[label="",style="solid", color="black", weight=3]; 173.40/119.38 658[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];658 -> 739[label="",style="solid", color="black", weight=3]; 173.40/119.38 659[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];659 -> 740[label="",style="solid", color="black", weight=3]; 173.40/119.38 660 -> 834[label="",style="dashed", color="red", weight=0]; 173.40/119.38 660[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];660 -> 835[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 661[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5200))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];661 -> 742[label="",style="solid", color="black", weight=3]; 173.40/119.38 662[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];662 -> 743[label="",style="solid", color="black", weight=3]; 173.40/119.38 663[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];663 -> 744[label="",style="solid", color="black", weight=3]; 173.40/119.38 664[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];664 -> 745[label="",style="solid", color="black", weight=3]; 173.40/119.38 665[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];665 -> 746[label="",style="solid", color="black", weight=3]; 173.40/119.38 666[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];666 -> 747[label="",style="solid", color="black", weight=3]; 173.40/119.38 667[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz530) vuz58) vuz54 (Pos vuz530))",fontsize=16,color="burlywood",shape="box"];5610[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];667 -> 5610[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5610 -> 748[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5611[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];667 -> 5611[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5611 -> 749[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 668[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz530) vuz58) vuz54 (Neg vuz530))",fontsize=16,color="burlywood",shape="box"];5612[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];668 -> 5612[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5612 -> 750[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5613[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 5613[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5613 -> 751[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 669[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5500))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];669 -> 752[label="",style="solid", color="black", weight=3]; 173.40/119.38 670[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];670 -> 753[label="",style="solid", color="black", weight=3]; 173.40/119.38 671 -> 850[label="",style="dashed", color="red", weight=0]; 173.40/119.38 671[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];671 -> 851[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 672[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];672 -> 755[label="",style="solid", color="black", weight=3]; 173.40/119.38 673[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];673 -> 756[label="",style="solid", color="black", weight=3]; 173.40/119.38 674[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];674 -> 757[label="",style="solid", color="black", weight=3]; 173.40/119.38 675[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];675 -> 758[label="",style="solid", color="black", weight=3]; 173.40/119.38 676 -> 859[label="",style="dashed", color="red", weight=0]; 173.40/119.38 676[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];676 -> 860[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 677[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5500))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];677 -> 760[label="",style="solid", color="black", weight=3]; 173.40/119.38 678[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];678 -> 761[label="",style="solid", color="black", weight=3]; 173.40/119.38 679[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];679 -> 762[label="",style="solid", color="black", weight=3]; 173.40/119.38 680[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];680 -> 763[label="",style="solid", color="black", weight=3]; 173.40/119.38 681[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];681 -> 764[label="",style="solid", color="black", weight=3]; 173.40/119.38 682[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];682 -> 765[label="",style="solid", color="black", weight=3]; 173.40/119.38 683[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5600))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];683 -> 766[label="",style="solid", color="black", weight=3]; 173.40/119.38 684[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];684 -> 767[label="",style="solid", color="black", weight=3]; 173.40/119.38 685 -> 867[label="",style="dashed", color="red", weight=0]; 173.40/119.38 685[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];685 -> 868[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 686[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];686 -> 769[label="",style="solid", color="black", weight=3]; 173.40/119.38 687[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];687 -> 770[label="",style="solid", color="black", weight=3]; 173.40/119.38 688[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];688 -> 771[label="",style="solid", color="black", weight=3]; 173.40/119.38 689[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];689 -> 772[label="",style="solid", color="black", weight=3]; 173.40/119.38 690 -> 876[label="",style="dashed", color="red", weight=0]; 173.40/119.38 690[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];690 -> 877[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 691[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5600))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];691 -> 774[label="",style="solid", color="black", weight=3]; 173.40/119.38 692[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];692 -> 775[label="",style="solid", color="black", weight=3]; 173.40/119.38 693[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];693 -> 776[label="",style="solid", color="black", weight=3]; 173.40/119.38 694[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];694 -> 777[label="",style="solid", color="black", weight=3]; 173.40/119.38 695[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];695 -> 778[label="",style="solid", color="black", weight=3]; 173.40/119.38 696[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];696 -> 779[label="",style="solid", color="black", weight=3]; 173.40/119.38 697[label="Integer vuz30 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5614[label="vuz38/Pos vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5614[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5614 -> 780[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5615[label="vuz38/Neg vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5615[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5615 -> 781[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 699 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 699[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];699 -> 782[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 699 -> 783[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 700 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.38 700[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];700 -> 784[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 700 -> 785[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 698[label="Integer vuz59 `quot` reduce2D (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];698 -> 786[label="",style="solid", color="black", weight=3]; 173.40/119.38 701[label="Integer vuz32 `quot` gcd2 (vuz11 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5616[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];701 -> 5616[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5616 -> 787[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 702 -> 543[label="",style="dashed", color="red", weight=0]; 173.40/119.38 702[label="Integer (primNegInt vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer (primNegInt vuz32))",fontsize=16,color="magenta"];702 -> 788[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2337 -> 2211[label="",style="dashed", color="red", weight=0]; 173.40/119.38 2337[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz1350 vuz1360 == GT)",fontsize=16,color="magenta"];2337 -> 2375[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2337 -> 2376[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2338[label="signumReal1 (Pos (Succ vuz134)) (GT == GT)",fontsize=16,color="black",shape="box"];2338 -> 2377[label="",style="solid", color="black", weight=3]; 173.40/119.38 2339[label="signumReal1 (Pos (Succ vuz134)) (LT == GT)",fontsize=16,color="black",shape="box"];2339 -> 2378[label="",style="solid", color="black", weight=3]; 173.40/119.38 2340[label="signumReal1 (Pos (Succ vuz134)) (EQ == GT)",fontsize=16,color="black",shape="box"];2340 -> 2379[label="",style="solid", color="black", weight=3]; 173.40/119.38 711[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];711 -> 795[label="",style="solid", color="black", weight=3]; 173.40/119.38 2371 -> 2267[label="",style="dashed", color="red", weight=0]; 173.40/119.38 2371[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz1390 vuz1400 == GT)",fontsize=16,color="magenta"];2371 -> 2410[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2371 -> 2411[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2372[label="signumReal1 (Neg (Succ vuz138)) (GT == GT)",fontsize=16,color="black",shape="box"];2372 -> 2412[label="",style="solid", color="black", weight=3]; 173.40/119.38 2373[label="signumReal1 (Neg (Succ vuz138)) (LT == GT)",fontsize=16,color="black",shape="box"];2373 -> 2413[label="",style="solid", color="black", weight=3]; 173.40/119.38 2374[label="signumReal1 (Neg (Succ vuz138)) (EQ == GT)",fontsize=16,color="black",shape="box"];2374 -> 2414[label="",style="solid", color="black", weight=3]; 173.40/119.38 716[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) vuz57) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5617[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5617[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5617 -> 800[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5618[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5618[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5618 -> 801[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 717[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz57) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5619[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5619[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5619 -> 802[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5620[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5620[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5620 -> 803[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 718[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) vuz57) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5621[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5621[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5621 -> 804[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5622[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5622[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5622 -> 805[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 719[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz57) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5623[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5623[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5623 -> 806[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5624[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5624[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5624 -> 807[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 720 -> 808[label="",style="dashed", color="red", weight=0]; 173.40/119.38 720[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];720 -> 810[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 721 -> 808[label="",style="dashed", color="red", weight=0]; 173.40/119.38 721[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];721 -> 811[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 809[label="False",fontsize=16,color="green",shape="box"];808[label="primQuotInt (Pos vuz180) (gcd1 vuz61 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5625[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];808 -> 5625[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5625 -> 812[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5626[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];808 -> 5626[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5626 -> 813[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 723[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];723 -> 814[label="",style="solid", color="black", weight=3]; 173.40/119.38 724[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];724 -> 815[label="",style="solid", color="black", weight=3]; 173.40/119.38 725 -> 723[label="",style="dashed", color="red", weight=0]; 173.40/119.38 725[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];726 -> 724[label="",style="dashed", color="red", weight=0]; 173.40/119.38 726[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];818[label="False",fontsize=16,color="green",shape="box"];817[label="primQuotInt (Pos vuz180) (gcd1 vuz62 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5627[label="vuz62/False",fontsize=10,color="white",style="solid",shape="box"];817 -> 5627[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5627 -> 821[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5628[label="vuz62/True",fontsize=10,color="white",style="solid",shape="box"];817 -> 5628[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5628 -> 822[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 728 -> 817[label="",style="dashed", color="red", weight=0]; 173.40/119.38 728[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];728 -> 819[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 729 -> 817[label="",style="dashed", color="red", weight=0]; 173.40/119.38 729[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];729 -> 820[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 730[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];730 -> 823[label="",style="solid", color="black", weight=3]; 173.40/119.38 731[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];731 -> 824[label="",style="solid", color="black", weight=3]; 173.40/119.38 732 -> 730[label="",style="dashed", color="red", weight=0]; 173.40/119.38 732[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];733 -> 731[label="",style="dashed", color="red", weight=0]; 173.40/119.38 733[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];734 -> 825[label="",style="dashed", color="red", weight=0]; 173.40/119.38 734[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];734 -> 827[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 735 -> 825[label="",style="dashed", color="red", weight=0]; 173.40/119.38 735[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];735 -> 828[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 826[label="False",fontsize=16,color="green",shape="box"];825[label="primQuotInt (Pos vuz180) (gcd1 vuz63 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5629[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];825 -> 5629[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5629 -> 829[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5630[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];825 -> 5630[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5630 -> 830[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 737[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];737 -> 831[label="",style="solid", color="black", weight=3]; 173.40/119.38 738[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];738 -> 832[label="",style="solid", color="black", weight=3]; 173.40/119.38 739 -> 737[label="",style="dashed", color="red", weight=0]; 173.40/119.38 739[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];740 -> 738[label="",style="dashed", color="red", weight=0]; 173.40/119.38 740[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];835[label="False",fontsize=16,color="green",shape="box"];834[label="primQuotInt (Pos vuz180) (gcd1 vuz64 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5631[label="vuz64/False",fontsize=10,color="white",style="solid",shape="box"];834 -> 5631[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5631 -> 838[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5632[label="vuz64/True",fontsize=10,color="white",style="solid",shape="box"];834 -> 5632[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5632 -> 839[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 742 -> 834[label="",style="dashed", color="red", weight=0]; 173.40/119.38 742[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];742 -> 836[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 743 -> 834[label="",style="dashed", color="red", weight=0]; 173.40/119.38 743[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];743 -> 837[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 744[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];744 -> 840[label="",style="solid", color="black", weight=3]; 173.40/119.38 745[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];745 -> 841[label="",style="solid", color="black", weight=3]; 173.40/119.38 746 -> 744[label="",style="dashed", color="red", weight=0]; 173.40/119.38 746[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];747 -> 745[label="",style="dashed", color="red", weight=0]; 173.40/119.38 747[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];748[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) vuz58) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5633[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5633[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5633 -> 842[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5634[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5634[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5634 -> 843[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 749[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz58) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5635[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5635[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5635 -> 844[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5636[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5636[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5636 -> 845[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 750[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) vuz58) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5637[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5637[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5637 -> 846[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5638[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5638[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5638 -> 847[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 751[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz58) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5639[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5639[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5639 -> 848[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5640[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5640[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5640 -> 849[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 752 -> 850[label="",style="dashed", color="red", weight=0]; 173.40/119.38 752[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];752 -> 852[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 753 -> 850[label="",style="dashed", color="red", weight=0]; 173.40/119.38 753[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];753 -> 853[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 851[label="False",fontsize=16,color="green",shape="box"];850[label="primQuotInt (Neg vuz180) (gcd1 vuz65 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5641[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];850 -> 5641[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5641 -> 854[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5642[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];850 -> 5642[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5642 -> 855[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 755[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];755 -> 856[label="",style="solid", color="black", weight=3]; 173.40/119.38 756[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];756 -> 857[label="",style="solid", color="black", weight=3]; 173.40/119.38 757 -> 755[label="",style="dashed", color="red", weight=0]; 173.40/119.38 757[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];758 -> 756[label="",style="dashed", color="red", weight=0]; 173.40/119.38 758[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];860[label="False",fontsize=16,color="green",shape="box"];859[label="primQuotInt (Neg vuz180) (gcd1 vuz66 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5643[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];859 -> 5643[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5643 -> 863[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5644[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];859 -> 5644[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5644 -> 864[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 760 -> 859[label="",style="dashed", color="red", weight=0]; 173.40/119.38 760[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];760 -> 861[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 761 -> 859[label="",style="dashed", color="red", weight=0]; 173.40/119.38 761[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];761 -> 862[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 762[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];762 -> 865[label="",style="solid", color="black", weight=3]; 173.40/119.38 763[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];763 -> 866[label="",style="solid", color="black", weight=3]; 173.40/119.38 764 -> 762[label="",style="dashed", color="red", weight=0]; 173.40/119.38 764[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];765 -> 763[label="",style="dashed", color="red", weight=0]; 173.40/119.38 765[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];766 -> 867[label="",style="dashed", color="red", weight=0]; 173.40/119.38 766[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];766 -> 869[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 767 -> 867[label="",style="dashed", color="red", weight=0]; 173.40/119.38 767[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];767 -> 870[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 868[label="False",fontsize=16,color="green",shape="box"];867[label="primQuotInt (Neg vuz180) (gcd1 vuz67 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5645[label="vuz67/False",fontsize=10,color="white",style="solid",shape="box"];867 -> 5645[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5645 -> 871[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5646[label="vuz67/True",fontsize=10,color="white",style="solid",shape="box"];867 -> 5646[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5646 -> 872[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 769[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];769 -> 873[label="",style="solid", color="black", weight=3]; 173.40/119.38 770[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];770 -> 874[label="",style="solid", color="black", weight=3]; 173.40/119.38 771 -> 769[label="",style="dashed", color="red", weight=0]; 173.40/119.38 771[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];772 -> 770[label="",style="dashed", color="red", weight=0]; 173.40/119.38 772[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];877[label="False",fontsize=16,color="green",shape="box"];876[label="primQuotInt (Neg vuz180) (gcd1 vuz68 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5647[label="vuz68/False",fontsize=10,color="white",style="solid",shape="box"];876 -> 5647[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5647 -> 880[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5648[label="vuz68/True",fontsize=10,color="white",style="solid",shape="box"];876 -> 5648[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5648 -> 881[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 774 -> 876[label="",style="dashed", color="red", weight=0]; 173.40/119.38 774[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];774 -> 878[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 775 -> 876[label="",style="dashed", color="red", weight=0]; 173.40/119.38 775[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];775 -> 879[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 776[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];776 -> 882[label="",style="solid", color="black", weight=3]; 173.40/119.38 777[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];777 -> 883[label="",style="solid", color="black", weight=3]; 173.40/119.38 778 -> 776[label="",style="dashed", color="red", weight=0]; 173.40/119.38 778[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];779 -> 777[label="",style="dashed", color="red", weight=0]; 173.40/119.38 779[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];780[label="Integer vuz30 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5649[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];780 -> 5649[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5649 -> 884[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5650[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 5650[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5650 -> 885[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 781[label="Integer vuz30 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5651[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];781 -> 5651[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5651 -> 886[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5652[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];781 -> 5652[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5652 -> 887[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 782[label="Pos Zero",fontsize=16,color="green",shape="box"];783[label="vuz30",fontsize=16,color="green",shape="box"];784[label="Pos Zero",fontsize=16,color="green",shape="box"];785[label="vuz30",fontsize=16,color="green",shape="box"];786[label="Integer vuz59 `quot` gcd (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];786 -> 888[label="",style="solid", color="black", weight=3]; 173.40/119.38 787[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5653[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];787 -> 5653[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5653 -> 889[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 788 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.38 788[label="primNegInt vuz32",fontsize=16,color="magenta"];788 -> 890[label="",style="dashed", color="magenta", weight=3]; 173.40/119.38 2375[label="vuz1350",fontsize=16,color="green",shape="box"];2376[label="vuz1360",fontsize=16,color="green",shape="box"];2377[label="signumReal1 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2377 -> 2415[label="",style="solid", color="black", weight=3]; 173.40/119.38 2378[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="black",shape="triangle"];2378 -> 2416[label="",style="solid", color="black", weight=3]; 173.40/119.38 2379 -> 2378[label="",style="dashed", color="red", weight=0]; 173.40/119.38 2379[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="magenta"];795[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];2410[label="vuz1390",fontsize=16,color="green",shape="box"];2411[label="vuz1400",fontsize=16,color="green",shape="box"];2412[label="signumReal1 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2412 -> 2449[label="",style="solid", color="black", weight=3]; 173.40/119.38 2413[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="black",shape="triangle"];2413 -> 2450[label="",style="solid", color="black", weight=3]; 173.40/119.38 2414 -> 2413[label="",style="dashed", color="red", weight=0]; 173.40/119.38 2414[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="magenta"];800[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5654[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];800 -> 5654[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5654 -> 901[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5655[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 5655[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5655 -> 902[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 801[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Neg vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];801 -> 903[label="",style="solid", color="black", weight=3]; 173.40/119.38 802[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5656[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];802 -> 5656[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5656 -> 904[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5657[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];802 -> 5657[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5657 -> 905[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 803[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5658[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];803 -> 5658[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5658 -> 906[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5659[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];803 -> 5659[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5659 -> 907[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 804[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Pos vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];804 -> 908[label="",style="solid", color="black", weight=3]; 173.40/119.38 805[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5660[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];805 -> 5660[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5660 -> 909[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5661[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 5661[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5661 -> 910[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 806[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5662[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];806 -> 5662[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5662 -> 911[label="",style="solid", color="burlywood", weight=3]; 173.40/119.38 5663[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 5663[label="",style="solid", color="burlywood", weight=9]; 173.40/119.38 5663 -> 912[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 807[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5664[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];807 -> 5664[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5664 -> 913[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5665[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];807 -> 5665[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5665 -> 914[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 810 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 810[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];810 -> 915[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 810 -> 916[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 811[label="False",fontsize=16,color="green",shape="box"];812[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];812 -> 917[label="",style="solid", color="black", weight=3]; 173.40/119.39 813[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];813 -> 918[label="",style="solid", color="black", weight=3]; 173.40/119.39 814 -> 407[label="",style="dashed", color="red", weight=0]; 173.40/119.39 814[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];814 -> 919[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 815[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="black",shape="triangle"];815 -> 920[label="",style="solid", color="black", weight=3]; 173.40/119.39 821[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];821 -> 921[label="",style="solid", color="black", weight=3]; 173.40/119.39 822[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];822 -> 922[label="",style="solid", color="black", weight=3]; 173.40/119.39 819 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 819[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];819 -> 923[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 819 -> 924[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 820[label="False",fontsize=16,color="green",shape="box"];823 -> 407[label="",style="dashed", color="red", weight=0]; 173.40/119.39 823[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];823 -> 925[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 824 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 824[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];827 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 827[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];827 -> 926[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 827 -> 927[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 828[label="False",fontsize=16,color="green",shape="box"];829[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];829 -> 928[label="",style="solid", color="black", weight=3]; 173.40/119.39 830[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];830 -> 929[label="",style="solid", color="black", weight=3]; 173.40/119.39 831 -> 410[label="",style="dashed", color="red", weight=0]; 173.40/119.39 831[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];831 -> 930[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 832 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 832[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];838[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];838 -> 931[label="",style="solid", color="black", weight=3]; 173.40/119.39 839[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];839 -> 932[label="",style="solid", color="black", weight=3]; 173.40/119.39 836 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 836[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];836 -> 933[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 836 -> 934[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 837[label="False",fontsize=16,color="green",shape="box"];840 -> 410[label="",style="dashed", color="red", weight=0]; 173.40/119.39 840[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];840 -> 935[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 841 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 841[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];842[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5666[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];842 -> 5666[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5666 -> 936[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5667[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];842 -> 5667[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5667 -> 937[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 843[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Neg vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];843 -> 938[label="",style="solid", color="black", weight=3]; 173.40/119.39 844[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5668[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];844 -> 5668[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5668 -> 939[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5669[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];844 -> 5669[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5669 -> 940[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 845[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5670[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];845 -> 5670[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5670 -> 941[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5671[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];845 -> 5671[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5671 -> 942[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 846[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Pos vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];846 -> 943[label="",style="solid", color="black", weight=3]; 173.40/119.39 847[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5672[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];847 -> 5672[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5672 -> 944[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5673[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 5673[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5673 -> 945[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 848[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5674[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];848 -> 5674[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5674 -> 946[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5675[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];848 -> 5675[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5675 -> 947[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 849[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5676[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];849 -> 5676[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5676 -> 948[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5677[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];849 -> 5677[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5677 -> 949[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 852 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 852[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];852 -> 950[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 852 -> 951[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 853[label="False",fontsize=16,color="green",shape="box"];854[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];854 -> 952[label="",style="solid", color="black", weight=3]; 173.40/119.39 855[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];855 -> 953[label="",style="solid", color="black", weight=3]; 173.40/119.39 856 -> 413[label="",style="dashed", color="red", weight=0]; 173.40/119.39 856[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];856 -> 954[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 857[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="black",shape="triangle"];857 -> 955[label="",style="solid", color="black", weight=3]; 173.40/119.39 863[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];863 -> 956[label="",style="solid", color="black", weight=3]; 173.40/119.39 864[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];864 -> 957[label="",style="solid", color="black", weight=3]; 173.40/119.39 861 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 861[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];861 -> 958[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 861 -> 959[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 862[label="False",fontsize=16,color="green",shape="box"];865 -> 413[label="",style="dashed", color="red", weight=0]; 173.40/119.39 865[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];865 -> 960[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 866 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 866[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];869 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 869[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];869 -> 961[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 869 -> 962[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 870[label="False",fontsize=16,color="green",shape="box"];871[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];871 -> 963[label="",style="solid", color="black", weight=3]; 173.40/119.39 872[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];872 -> 964[label="",style="solid", color="black", weight=3]; 173.40/119.39 873 -> 416[label="",style="dashed", color="red", weight=0]; 173.40/119.39 873[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];873 -> 965[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 874 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 874[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];880[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];880 -> 968[label="",style="solid", color="black", weight=3]; 173.40/119.39 881[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];881 -> 969[label="",style="solid", color="black", weight=3]; 173.40/119.39 878 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 878[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];878 -> 966[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 878 -> 967[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 879[label="False",fontsize=16,color="green",shape="box"];882 -> 416[label="",style="dashed", color="red", weight=0]; 173.40/119.39 882[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];882 -> 970[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 883 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 883[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];884[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];884 -> 971[label="",style="solid", color="black", weight=3]; 173.40/119.39 885[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];885 -> 972[label="",style="solid", color="black", weight=3]; 173.40/119.39 886[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];886 -> 973[label="",style="solid", color="black", weight=3]; 173.40/119.39 887[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];887 -> 974[label="",style="solid", color="black", weight=3]; 173.40/119.39 888[label="Integer vuz59 `quot` gcd3 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];888 -> 975[label="",style="solid", color="black", weight=3]; 173.40/119.39 889[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * Integer vuz120 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * Integer vuz120 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];889 -> 976[label="",style="solid", color="black", weight=3]; 173.40/119.39 890[label="vuz32",fontsize=16,color="green",shape="box"];2415[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5678[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5678[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5678 -> 2451[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5679[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5679[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5679 -> 2452[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5680[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5680[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5680 -> 2453[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5681[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5681[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5681 -> 2454[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5682[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5682[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5682 -> 2455[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2416[label="signumReal0 (Pos (Succ vuz134)) otherwise",fontsize=16,color="black",shape="box"];2416 -> 2456[label="",style="solid", color="black", weight=3]; 173.40/119.39 2449[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5683[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5683[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5683 -> 2498[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5684[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5684[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5684 -> 2499[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5685[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5685[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5685 -> 2500[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5686[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5686[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5686 -> 2501[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5687[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5687[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5687 -> 2502[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2450[label="signumReal0 (Neg (Succ vuz138)) otherwise",fontsize=16,color="black",shape="box"];2450 -> 2503[label="",style="solid", color="black", weight=3]; 173.40/119.39 901[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos (Succ vuz5700))) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];901 -> 988[label="",style="solid", color="black", weight=3]; 173.40/119.39 902[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos Zero)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];902 -> 989[label="",style="solid", color="black", weight=3]; 173.40/119.39 903 -> 1042[label="",style="dashed", color="red", weight=0]; 173.40/119.39 903[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];903 -> 1043[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 904[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];904 -> 991[label="",style="solid", color="black", weight=3]; 173.40/119.39 905[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];905 -> 992[label="",style="solid", color="black", weight=3]; 173.40/119.39 906[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];906 -> 993[label="",style="solid", color="black", weight=3]; 173.40/119.39 907[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];907 -> 994[label="",style="solid", color="black", weight=3]; 173.40/119.39 908 -> 1051[label="",style="dashed", color="red", weight=0]; 173.40/119.39 908[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];908 -> 1052[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 909[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg (Succ vuz5700))) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];909 -> 996[label="",style="solid", color="black", weight=3]; 173.40/119.39 910[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg Zero)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];910 -> 997[label="",style="solid", color="black", weight=3]; 173.40/119.39 911[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];911 -> 998[label="",style="solid", color="black", weight=3]; 173.40/119.39 912[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];912 -> 999[label="",style="solid", color="black", weight=3]; 173.40/119.39 913[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];913 -> 1000[label="",style="solid", color="black", weight=3]; 173.40/119.39 914[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];914 -> 1001[label="",style="solid", color="black", weight=3]; 173.40/119.39 915[label="vuz5100",fontsize=16,color="green",shape="box"];916[label="vuz2700",fontsize=16,color="green",shape="box"];917 -> 407[label="",style="dashed", color="red", weight=0]; 173.40/119.39 917[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];917 -> 1002[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 918 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 918[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];919[label="Pos Zero",fontsize=16,color="green",shape="box"];920[label="error []",fontsize=16,color="red",shape="box"];921 -> 407[label="",style="dashed", color="red", weight=0]; 173.40/119.39 921[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];921 -> 1003[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 922 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 922[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];923[label="vuz5100",fontsize=16,color="green",shape="box"];924[label="vuz2700",fontsize=16,color="green",shape="box"];925[label="Neg Zero",fontsize=16,color="green",shape="box"];926[label="vuz5200",fontsize=16,color="green",shape="box"];927[label="vuz2700",fontsize=16,color="green",shape="box"];928 -> 410[label="",style="dashed", color="red", weight=0]; 173.40/119.39 928[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];928 -> 1004[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 929 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 929[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];930[label="Pos Zero",fontsize=16,color="green",shape="box"];931 -> 410[label="",style="dashed", color="red", weight=0]; 173.40/119.39 931[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];931 -> 1005[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 932 -> 815[label="",style="dashed", color="red", weight=0]; 173.40/119.39 932[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];933[label="vuz5200",fontsize=16,color="green",shape="box"];934[label="vuz2700",fontsize=16,color="green",shape="box"];935[label="Neg Zero",fontsize=16,color="green",shape="box"];936[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos (Succ vuz5800))) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];936 -> 1006[label="",style="solid", color="black", weight=3]; 173.40/119.39 937[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos Zero)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];937 -> 1007[label="",style="solid", color="black", weight=3]; 173.40/119.39 938 -> 1059[label="",style="dashed", color="red", weight=0]; 173.40/119.39 938[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];938 -> 1060[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 939[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];939 -> 1009[label="",style="solid", color="black", weight=3]; 173.40/119.39 940[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];940 -> 1010[label="",style="solid", color="black", weight=3]; 173.40/119.39 941[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];941 -> 1011[label="",style="solid", color="black", weight=3]; 173.40/119.39 942[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];942 -> 1012[label="",style="solid", color="black", weight=3]; 173.40/119.39 943 -> 1068[label="",style="dashed", color="red", weight=0]; 173.40/119.39 943[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];943 -> 1069[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 944[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg (Succ vuz5800))) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];944 -> 1014[label="",style="solid", color="black", weight=3]; 173.40/119.39 945[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg Zero)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];945 -> 1015[label="",style="solid", color="black", weight=3]; 173.40/119.39 946[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];946 -> 1016[label="",style="solid", color="black", weight=3]; 173.40/119.39 947[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];947 -> 1017[label="",style="solid", color="black", weight=3]; 173.40/119.39 948[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];948 -> 1018[label="",style="solid", color="black", weight=3]; 173.40/119.39 949[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];949 -> 1019[label="",style="solid", color="black", weight=3]; 173.40/119.39 950[label="vuz5500",fontsize=16,color="green",shape="box"];951[label="vuz2700",fontsize=16,color="green",shape="box"];952 -> 413[label="",style="dashed", color="red", weight=0]; 173.40/119.39 952[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];952 -> 1020[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 953 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 953[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];954[label="Pos Zero",fontsize=16,color="green",shape="box"];955[label="error []",fontsize=16,color="red",shape="box"];956 -> 413[label="",style="dashed", color="red", weight=0]; 173.40/119.39 956[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];956 -> 1021[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 957 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 957[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];958[label="vuz5500",fontsize=16,color="green",shape="box"];959[label="vuz2700",fontsize=16,color="green",shape="box"];960[label="Neg Zero",fontsize=16,color="green",shape="box"];961[label="vuz5600",fontsize=16,color="green",shape="box"];962[label="vuz2700",fontsize=16,color="green",shape="box"];963 -> 416[label="",style="dashed", color="red", weight=0]; 173.40/119.39 963[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];963 -> 1022[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 964 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 964[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];965[label="Pos Zero",fontsize=16,color="green",shape="box"];968 -> 416[label="",style="dashed", color="red", weight=0]; 173.40/119.39 968[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];968 -> 1023[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 969 -> 857[label="",style="dashed", color="red", weight=0]; 173.40/119.39 969[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];966[label="vuz5600",fontsize=16,color="green",shape="box"];967[label="vuz2700",fontsize=16,color="green",shape="box"];970[label="Neg Zero",fontsize=16,color="green",shape="box"];971[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];971 -> 1024[label="",style="solid", color="black", weight=3]; 173.40/119.39 972[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];972 -> 1025[label="",style="solid", color="black", weight=3]; 173.40/119.39 973[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];973 -> 1026[label="",style="solid", color="black", weight=3]; 173.40/119.39 974[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];974 -> 1027[label="",style="solid", color="black", weight=3]; 173.40/119.39 975 -> 1028[label="",style="dashed", color="red", weight=0]; 173.40/119.39 975[label="Integer vuz59 `quot` gcd2 (Integer vuz60 == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="magenta"];975 -> 1029[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 976 -> 1893[label="",style="dashed", color="red", weight=0]; 173.40/119.39 976[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="magenta"];976 -> 1894[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 976 -> 1895[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 976 -> 1896[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 976 -> 1897[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2451 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2451[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2452 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2452[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2453[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2453 -> 2504[label="",style="solid", color="black", weight=3]; 173.40/119.39 2454[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2454 -> 2505[label="",style="solid", color="black", weight=3]; 173.40/119.39 2455[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2455 -> 2506[label="",style="solid", color="black", weight=3]; 173.40/119.39 2456[label="signumReal0 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2456 -> 2507[label="",style="solid", color="black", weight=3]; 173.40/119.39 2498 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2498[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2499 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2499[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2500 -> 2453[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2500[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2501 -> 2454[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2501[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2502 -> 2455[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2502[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2503[label="signumReal0 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2503 -> 2559[label="",style="solid", color="black", weight=3]; 173.40/119.39 988 -> 1042[label="",style="dashed", color="red", weight=0]; 173.40/119.39 988[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];988 -> 1044[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 989 -> 1042[label="",style="dashed", color="red", weight=0]; 173.40/119.39 989[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];989 -> 1045[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1043[label="False",fontsize=16,color="green",shape="box"];1042[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz72 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5688[label="vuz72/False",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5688[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5688 -> 1046[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5689[label="vuz72/True",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5689[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5689 -> 1047[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 991[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];991 -> 1048[label="",style="solid", color="black", weight=3]; 173.40/119.39 992[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];992 -> 1049[label="",style="solid", color="black", weight=3]; 173.40/119.39 993 -> 991[label="",style="dashed", color="red", weight=0]; 173.40/119.39 993[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="magenta"];994 -> 992[label="",style="dashed", color="red", weight=0]; 173.40/119.39 994[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="magenta"];1052[label="False",fontsize=16,color="green",shape="box"];1051[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz73 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5690[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5690[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5690 -> 1055[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5691[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5691[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5691 -> 1056[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 996 -> 1051[label="",style="dashed", color="red", weight=0]; 173.40/119.39 996[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];996 -> 1053[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 997 -> 1051[label="",style="dashed", color="red", weight=0]; 173.40/119.39 997[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];997 -> 1054[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 998[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];998 -> 1057[label="",style="solid", color="black", weight=3]; 173.40/119.39 999[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];999 -> 1058[label="",style="solid", color="black", weight=3]; 173.40/119.39 1000 -> 998[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1000[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="magenta"];1001 -> 999[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1001[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="magenta"];1002[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1003[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1004[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1005[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1006 -> 1059[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1006[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1006 -> 1061[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1007 -> 1059[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1007[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1007 -> 1062[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1060[label="False",fontsize=16,color="green",shape="box"];1059[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz74 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5692[label="vuz74/False",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5692[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5692 -> 1063[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5693[label="vuz74/True",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5693[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5693 -> 1064[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1009[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1009 -> 1065[label="",style="solid", color="black", weight=3]; 173.40/119.39 1010[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1010 -> 1066[label="",style="solid", color="black", weight=3]; 173.40/119.39 1011 -> 1009[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1011[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="magenta"];1012 -> 1010[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1012[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="magenta"];1069[label="False",fontsize=16,color="green",shape="box"];1068[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz75 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5694[label="vuz75/False",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5694[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5694 -> 1072[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5695[label="vuz75/True",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5695[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5695 -> 1073[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1014 -> 1068[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1014[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1014 -> 1070[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1015 -> 1068[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1015[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1015 -> 1071[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1016[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1016 -> 1074[label="",style="solid", color="black", weight=3]; 173.40/119.39 1017[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1017 -> 1075[label="",style="solid", color="black", weight=3]; 173.40/119.39 1018 -> 1016[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1018[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="magenta"];1019 -> 1017[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1019[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="magenta"];1020[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1021[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1022[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1023[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1024[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1024 -> 1076[label="",style="solid", color="black", weight=3]; 173.40/119.39 1025[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1025 -> 1077[label="",style="solid", color="black", weight=3]; 173.40/119.39 1026[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1026 -> 1078[label="",style="solid", color="black", weight=3]; 173.40/119.39 1027[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1027 -> 1079[label="",style="solid", color="black", weight=3]; 173.40/119.39 1029 -> 331[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1029[label="Integer vuz60 == fromInt (Pos Zero)",fontsize=16,color="magenta"];1029 -> 1080[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1028[label="Integer vuz59 `quot` gcd2 vuz69 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="triangle"];5696[label="vuz69/False",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5696[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5696 -> 1081[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5697[label="vuz69/True",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5697[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5697 -> 1082[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1894[label="signum (Integer vuz34)",fontsize=16,color="black",shape="triangle"];1894 -> 1966[label="",style="solid", color="black", weight=3]; 173.40/119.39 1895 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1895[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1895 -> 1967[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1895 -> 1968[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1896 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1896[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1896 -> 1969[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1896 -> 1970[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1897 -> 1894[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1897[label="signum (Integer vuz34)",fontsize=16,color="magenta"];1893[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * vuz104 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5698[label="vuz104/Integer vuz1040",fontsize=10,color="white",style="solid",shape="box"];1893 -> 5698[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5698 -> 1971[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2310[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2310 -> 2349[label="",style="solid", color="black", weight=3]; 173.40/119.39 2504[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2504 -> 2560[label="",style="solid", color="black", weight=3]; 173.40/119.39 2505[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2505 -> 2561[label="",style="solid", color="black", weight=3]; 173.40/119.39 2506[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2506 -> 2562[label="",style="solid", color="black", weight=3]; 173.40/119.39 2507[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5699[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5699[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5699 -> 2563[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5700[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5700[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5700 -> 2564[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5701[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5701[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5701 -> 2565[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5702[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5702[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5702 -> 2566[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5703[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5703[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5703 -> 2567[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2559[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5704[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5704[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5704 -> 2600[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5705[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5705[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5705 -> 2601[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5706[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5706[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5706 -> 2602[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5707[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5707[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5707 -> 2603[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5708[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5708[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5708 -> 2604[label="",style="solid", color="blue", weight=3]; 173.40/119.39 1044 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1044[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1044 -> 1099[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1044 -> 1100[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1045[label="False",fontsize=16,color="green",shape="box"];1046[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1046 -> 1101[label="",style="solid", color="black", weight=3]; 173.40/119.39 1047[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1047 -> 1102[label="",style="solid", color="black", weight=3]; 173.40/119.39 1048[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];1048 -> 1103[label="",style="solid", color="black", weight=3]; 173.40/119.39 1049[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="burlywood",shape="triangle"];5709[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5709[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5709 -> 1104[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5710[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5710[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5710 -> 1105[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1055[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1055 -> 1106[label="",style="solid", color="black", weight=3]; 173.40/119.39 1056[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1056 -> 1107[label="",style="solid", color="black", weight=3]; 173.40/119.39 1053 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1053[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1053 -> 1108[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1053 -> 1109[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1054[label="False",fontsize=16,color="green",shape="box"];1057 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1057[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg Zero))",fontsize=16,color="magenta"];1057 -> 1110[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1058 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1058[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1061 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1061[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1061 -> 1111[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1061 -> 1112[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1062[label="False",fontsize=16,color="green",shape="box"];1063[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1063 -> 1113[label="",style="solid", color="black", weight=3]; 173.40/119.39 1064[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1064 -> 1114[label="",style="solid", color="black", weight=3]; 173.40/119.39 1065[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];1065 -> 1115[label="",style="solid", color="black", weight=3]; 173.40/119.39 1066[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="burlywood",shape="triangle"];5711[label="vuz54/Pos vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5711[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5711 -> 1116[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5712[label="vuz54/Neg vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5712[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5712 -> 1117[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1072[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1072 -> 1120[label="",style="solid", color="black", weight=3]; 173.40/119.39 1073[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1073 -> 1121[label="",style="solid", color="black", weight=3]; 173.40/119.39 1070 -> 547[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1070[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1070 -> 1118[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1070 -> 1119[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1071[label="False",fontsize=16,color="green",shape="box"];1074 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1074[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg Zero))",fontsize=16,color="magenta"];1074 -> 1122[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1075 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1075[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1076[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1076 -> 1123[label="",style="solid", color="black", weight=3]; 173.40/119.39 1077[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1077 -> 1124[label="",style="solid", color="black", weight=3]; 173.40/119.39 1078[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1078 -> 1125[label="",style="solid", color="black", weight=3]; 173.40/119.39 1079[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1079 -> 1126[label="",style="solid", color="black", weight=3]; 173.40/119.39 1080[label="vuz60",fontsize=16,color="green",shape="box"];1081[label="Integer vuz59 `quot` gcd2 False (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1081 -> 1127[label="",style="solid", color="black", weight=3]; 173.40/119.39 1082[label="Integer vuz59 `quot` gcd2 True (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1082 -> 1128[label="",style="solid", color="black", weight=3]; 173.40/119.39 1966[label="signumReal (Integer vuz34)",fontsize=16,color="black",shape="box"];1966 -> 1987[label="",style="solid", color="black", weight=3]; 173.40/119.39 1967[label="vuz120",fontsize=16,color="green",shape="box"];1968[label="vuz110",fontsize=16,color="green",shape="box"];1969[label="vuz120",fontsize=16,color="green",shape="box"];1970[label="vuz110",fontsize=16,color="green",shape="box"];1971[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * Integer vuz1040 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="black",shape="box"];1971 -> 1988[label="",style="solid", color="black", weight=3]; 173.40/119.39 2349[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2560[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2560 -> 2605[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2560 -> 2606[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2561[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2563 -> 711[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2563[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2564 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2564[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2565[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2565 -> 2607[label="",style="solid", color="black", weight=3]; 173.40/119.39 2566[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2566 -> 2608[label="",style="solid", color="black", weight=3]; 173.40/119.39 2567[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2567 -> 2609[label="",style="solid", color="black", weight=3]; 173.40/119.39 2600 -> 711[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2600[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2601 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2601[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2602 -> 2565[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2602[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2603 -> 2566[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2603[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2604 -> 2567[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2604[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];1099[label="vuz5700",fontsize=16,color="green",shape="box"];1100[label="vuz4900",fontsize=16,color="green",shape="box"];1101 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1101[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];1101 -> 1141[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1102 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1102[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1103 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1103[label="primQuotInt (Pos vuz180) (gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero))",fontsize=16,color="magenta"];1103 -> 1142[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1104[label="primQuotInt (Pos vuz180) (Pos vuz500)",fontsize=16,color="burlywood",shape="box"];5713[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5713[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5713 -> 1143[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5714[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5714[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5714 -> 1144[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1105[label="primQuotInt (Pos vuz180) (Neg vuz500)",fontsize=16,color="burlywood",shape="box"];5715[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5715[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5715 -> 1145[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5716[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5716[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5716 -> 1146[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1106 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1106[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];1106 -> 1147[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1107 -> 1049[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1107[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1108[label="vuz5700",fontsize=16,color="green",shape="box"];1109[label="vuz4900",fontsize=16,color="green",shape="box"];1110 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1110[label="gcd0Gcd'0 vuz50 (Neg Zero)",fontsize=16,color="magenta"];1110 -> 2056[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1110 -> 2057[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1111[label="vuz5800",fontsize=16,color="green",shape="box"];1112[label="vuz5300",fontsize=16,color="green",shape="box"];1113 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1113[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1113 -> 1149[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1114 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1114[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1115 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1115[label="primQuotInt (Neg vuz180) (gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero))",fontsize=16,color="magenta"];1115 -> 1150[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1116[label="primQuotInt (Neg vuz180) (Pos vuz540)",fontsize=16,color="burlywood",shape="box"];5717[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5717[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5717 -> 1151[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5718[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5718[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5718 -> 1152[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1117[label="primQuotInt (Neg vuz180) (Neg vuz540)",fontsize=16,color="burlywood",shape="box"];5719[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5719[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5719 -> 1153[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5720[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5720[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5720 -> 1154[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1120 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1120[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1120 -> 1155[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1121 -> 1066[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1121[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1118[label="vuz5800",fontsize=16,color="green",shape="box"];1119[label="vuz5300",fontsize=16,color="green",shape="box"];1122 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1122[label="gcd0Gcd'0 vuz54 (Neg Zero)",fontsize=16,color="magenta"];1122 -> 2058[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1122 -> 2059[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1123[label="Integer vuz30 * fromInt (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1123 -> 1157[label="",style="solid", color="black", weight=3]; 173.40/119.39 1124[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1124 -> 1158[label="",style="solid", color="black", weight=3]; 173.40/119.39 1125[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1125 -> 1159[label="",style="solid", color="black", weight=3]; 173.40/119.39 1126[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1126 -> 1160[label="",style="solid", color="black", weight=3]; 173.40/119.39 1127[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1127 -> 1161[label="",style="solid", color="black", weight=3]; 173.40/119.39 1128[label="Integer vuz59 `quot` gcd1 (abs (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1128 -> 1162[label="",style="solid", color="black", weight=3]; 173.40/119.39 1987[label="signumReal3 (Integer vuz34)",fontsize=16,color="black",shape="box"];1987 -> 2010[label="",style="solid", color="black", weight=3]; 173.40/119.39 1988 -> 2011[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1988[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)) (Integer (primMulInt vuz71 vuz1040)) (Integer vuz32)",fontsize=16,color="magenta"];1988 -> 2012[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1988 -> 2013[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2605[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5721[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5721[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5721 -> 2644[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5722[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5722[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5722 -> 2645[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2606[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5723[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5723[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5723 -> 2646[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5724[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5724[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5724 -> 2647[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2387[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2387 -> 2424[label="",style="solid", color="black", weight=3]; 173.40/119.39 2607[label="intToRatio (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2607 -> 2648[label="",style="solid", color="black", weight=3]; 173.40/119.39 2608[label="primIntToDouble (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2608 -> 2649[label="",style="solid", color="black", weight=3]; 173.40/119.39 2609[label="primIntToFloat (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2609 -> 2650[label="",style="solid", color="black", weight=3]; 173.40/119.39 1141 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1141[label="gcd0Gcd'0 vuz50 (Pos (Succ vuz4900))",fontsize=16,color="magenta"];1141 -> 2060[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1141 -> 2061[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1142[label="gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="triangle"];1142 -> 1174[label="",style="solid", color="black", weight=3]; 173.40/119.39 1143[label="primQuotInt (Pos vuz180) (Pos (Succ vuz5000))",fontsize=16,color="black",shape="box"];1143 -> 1175[label="",style="solid", color="black", weight=3]; 173.40/119.39 1144[label="primQuotInt (Pos vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1144 -> 1176[label="",style="solid", color="black", weight=3]; 173.40/119.39 1145[label="primQuotInt (Pos vuz180) (Neg (Succ vuz5000))",fontsize=16,color="black",shape="box"];1145 -> 1177[label="",style="solid", color="black", weight=3]; 173.40/119.39 1146[label="primQuotInt (Pos vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1146 -> 1178[label="",style="solid", color="black", weight=3]; 173.40/119.39 1147 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1147[label="gcd0Gcd'0 vuz50 (Neg (Succ vuz4900))",fontsize=16,color="magenta"];1147 -> 2062[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1147 -> 2063[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2056[label="vuz50",fontsize=16,color="green",shape="box"];2057[label="Neg Zero",fontsize=16,color="green",shape="box"];2055[label="gcd0Gcd'0 vuz90 vuz116",fontsize=16,color="black",shape="triangle"];2055 -> 2075[label="",style="solid", color="black", weight=3]; 173.40/119.39 1149 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1149[label="gcd0Gcd'0 vuz54 (Pos (Succ vuz5300))",fontsize=16,color="magenta"];1149 -> 2064[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1149 -> 2065[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1150 -> 1142[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1150[label="gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero)",fontsize=16,color="magenta"];1150 -> 1183[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1151[label="primQuotInt (Neg vuz180) (Pos (Succ vuz5400))",fontsize=16,color="black",shape="box"];1151 -> 1184[label="",style="solid", color="black", weight=3]; 173.40/119.39 1152[label="primQuotInt (Neg vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1152 -> 1185[label="",style="solid", color="black", weight=3]; 173.40/119.39 1153[label="primQuotInt (Neg vuz180) (Neg (Succ vuz5400))",fontsize=16,color="black",shape="box"];1153 -> 1186[label="",style="solid", color="black", weight=3]; 173.40/119.39 1154[label="primQuotInt (Neg vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1154 -> 1187[label="",style="solid", color="black", weight=3]; 173.40/119.39 1155 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1155[label="gcd0Gcd'0 vuz54 (Neg (Succ vuz5300))",fontsize=16,color="magenta"];1155 -> 2066[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1155 -> 2067[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2058[label="vuz54",fontsize=16,color="green",shape="box"];2059[label="Neg Zero",fontsize=16,color="green",shape="box"];1157[label="Integer vuz30 * Integer (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1157 -> 1190[label="",style="solid", color="black", weight=3]; 173.40/119.39 1158[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];1158 -> 1191[label="",style="solid", color="black", weight=3]; 173.40/119.39 1159 -> 1158[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1159[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1160 -> 1158[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1160[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1161[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1161 -> 1192[label="",style="solid", color="black", weight=3]; 173.40/119.39 1162[label="Integer vuz59 `quot` gcd1 (absReal (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal (Integer vuz37))",fontsize=16,color="black",shape="box"];1162 -> 1193[label="",style="solid", color="black", weight=3]; 173.40/119.39 2010 -> 2014[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2010[label="signumReal2 (Integer vuz34) (Integer vuz34 == fromInt (Pos Zero))",fontsize=16,color="magenta"];2010 -> 2015[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2012 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2012[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2012 -> 2016[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2012 -> 2017[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2013 -> 331[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2013[label="Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)",fontsize=16,color="magenta"];2013 -> 2018[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2011[label="Integer vuz32 `quot` gcd2 vuz108 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5725[label="vuz108/False",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5725[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5725 -> 2019[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5726[label="vuz108/True",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5726[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5726 -> 2020[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2644 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2644[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2645 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2645[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2646 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2646[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2647 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2647[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2424[label="Integer (Neg (Succ Zero))",fontsize=16,color="green",shape="box"];2648[label="fromInt (Neg (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2648 -> 2681[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2648 -> 2682[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2649[label="Double (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650[label="Float (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2060[label="vuz50",fontsize=16,color="green",shape="box"];2061[label="Pos (Succ vuz4900)",fontsize=16,color="green",shape="box"];1174[label="gcd0Gcd'2 (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="box"];1174 -> 1209[label="",style="solid", color="black", weight=3]; 173.40/119.39 1175[label="Pos (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1175 -> 1210[label="",style="dashed", color="green", weight=3]; 173.40/119.39 1176[label="error []",fontsize=16,color="black",shape="triangle"];1176 -> 1211[label="",style="solid", color="black", weight=3]; 173.40/119.39 1177[label="Neg (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1177 -> 1212[label="",style="dashed", color="green", weight=3]; 173.40/119.39 1178 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1178[label="error []",fontsize=16,color="magenta"];2062[label="vuz50",fontsize=16,color="green",shape="box"];2063[label="Neg (Succ vuz4900)",fontsize=16,color="green",shape="box"];2075[label="gcd0Gcd' vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2075 -> 2078[label="",style="solid", color="black", weight=3]; 173.40/119.39 2064[label="vuz54",fontsize=16,color="green",shape="box"];2065[label="Pos (Succ vuz5300)",fontsize=16,color="green",shape="box"];1183[label="vuz54",fontsize=16,color="green",shape="box"];1184[label="Neg (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1184 -> 1215[label="",style="dashed", color="green", weight=3]; 173.40/119.39 1185 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1185[label="error []",fontsize=16,color="magenta"];1186[label="Pos (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1186 -> 1216[label="",style="dashed", color="green", weight=3]; 173.40/119.39 1187 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1187[label="error []",fontsize=16,color="magenta"];2066[label="vuz54",fontsize=16,color="green",shape="box"];2067[label="Neg (Succ vuz5300)",fontsize=16,color="green",shape="box"];1190 -> 698[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1190[label="Integer (primMulInt vuz30 (Pos (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Pos (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1190 -> 1217[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1190 -> 1218[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1191[label="Integer vuz30 * Integer (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1191 -> 1219[label="",style="solid", color="black", weight=3]; 173.40/119.39 1192[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1192 -> 1220[label="",style="solid", color="black", weight=3]; 173.40/119.39 1193[label="Integer vuz59 `quot` gcd1 (absReal2 (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal2 (Integer vuz37))",fontsize=16,color="black",shape="box"];1193 -> 1221[label="",style="solid", color="black", weight=3]; 173.40/119.39 2015 -> 331[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2015[label="Integer vuz34 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2015 -> 2021[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2014[label="signumReal2 (Integer vuz34) vuz111",fontsize=16,color="burlywood",shape="triangle"];5727[label="vuz111/False",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5727[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5727 -> 2022[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5728[label="vuz111/True",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5728[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5728 -> 2023[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2016[label="vuz1040",fontsize=16,color="green",shape="box"];2017[label="vuz71",fontsize=16,color="green",shape="box"];2018 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2018[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2018 -> 2026[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2018 -> 2027[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2019[label="Integer vuz32 `quot` gcd2 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2019 -> 2028[label="",style="solid", color="black", weight=3]; 173.40/119.39 2020[label="Integer vuz32 `quot` gcd2 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2020 -> 2029[label="",style="solid", color="black", weight=3]; 173.40/119.39 2681[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5729[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5729[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5729 -> 2713[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5730[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5730[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5730 -> 2714[label="",style="solid", color="blue", weight=3]; 173.40/119.39 2682[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5731[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5731[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5731 -> 2715[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5732[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5732[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5732 -> 2716[label="",style="solid", color="blue", weight=3]; 173.40/119.39 1209 -> 2097[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1209[label="gcd0Gcd'1 (vuz50 `rem` Pos Zero == fromInt (Pos Zero)) (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="magenta"];1209 -> 2098[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1209 -> 2099[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1209 -> 2100[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1210[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="burlywood",shape="triangle"];5733[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5733[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5733 -> 1240[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5734[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5734[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5734 -> 1241[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1211[label="error []",fontsize=16,color="red",shape="box"];1212 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1212[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="magenta"];1212 -> 1242[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2078[label="gcd0Gcd'2 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2078 -> 2094[label="",style="solid", color="black", weight=3]; 173.40/119.39 1215 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1215[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1215 -> 1246[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1215 -> 1247[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1216 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1216[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1216 -> 1248[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1216 -> 1249[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1217 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1217[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1217 -> 1250[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1217 -> 1251[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1218 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1218[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1218 -> 1252[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1218 -> 1253[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1219 -> 698[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1219[label="Integer (primMulInt vuz30 (Neg (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Neg (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1219 -> 1254[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1219 -> 1255[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1220[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1220 -> 1256[label="",style="solid", color="black", weight=3]; 173.40/119.39 1221[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1221 -> 1257[label="",style="solid", color="black", weight=3]; 173.40/119.39 2021[label="vuz34",fontsize=16,color="green",shape="box"];2022[label="signumReal2 (Integer vuz34) False",fontsize=16,color="black",shape="box"];2022 -> 2030[label="",style="solid", color="black", weight=3]; 173.40/119.39 2023[label="signumReal2 (Integer vuz34) True",fontsize=16,color="black",shape="box"];2023 -> 2031[label="",style="solid", color="black", weight=3]; 173.40/119.39 2026[label="vuz1040",fontsize=16,color="green",shape="box"];2027[label="vuz71",fontsize=16,color="green",shape="box"];2028[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];2028 -> 2041[label="",style="solid", color="black", weight=3]; 173.40/119.39 2029 -> 2042[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2029[label="Integer vuz32 `quot` gcd1 (Integer vuz32 == fromInt (Pos Zero)) (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2029 -> 2043[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2713 -> 711[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2713[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2714 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2714[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2715 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2715[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2716 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2716[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2098 -> 1690[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2098[label="vuz50 `rem` Pos Zero == fromInt (Pos Zero)",fontsize=16,color="magenta"];2098 -> 2102[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2098 -> 2103[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2099[label="vuz50",fontsize=16,color="green",shape="box"];2100[label="Pos Zero",fontsize=16,color="green",shape="box"];2097[label="gcd0Gcd'1 vuz122 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="burlywood",shape="triangle"];5735[label="vuz122/False",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5735[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5735 -> 2104[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5736[label="vuz122/True",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5736[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5736 -> 2105[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1240[label="primDivNatS (Succ vuz1800) (Succ vuz5000)",fontsize=16,color="black",shape="box"];1240 -> 1272[label="",style="solid", color="black", weight=3]; 173.40/119.39 1241[label="primDivNatS Zero (Succ vuz5000)",fontsize=16,color="black",shape="box"];1241 -> 1273[label="",style="solid", color="black", weight=3]; 173.40/119.39 1242[label="vuz5000",fontsize=16,color="green",shape="box"];2094 -> 2097[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2094[label="gcd0Gcd'1 (vuz90 `rem` vuz116 == fromInt (Pos Zero)) vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2094 -> 2101[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1246[label="vuz5400",fontsize=16,color="green",shape="box"];1247[label="vuz180",fontsize=16,color="green",shape="box"];1248[label="vuz5400",fontsize=16,color="green",shape="box"];1249[label="vuz180",fontsize=16,color="green",shape="box"];1250[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1251[label="vuz30",fontsize=16,color="green",shape="box"];1252[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1253[label="vuz30",fontsize=16,color="green",shape="box"];1254 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1254[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1254 -> 1277[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1254 -> 1278[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1255 -> 25[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1255[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1255 -> 1279[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1255 -> 1280[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1256[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1256 -> 1281[label="",style="solid", color="black", weight=3]; 173.40/119.39 1257[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1257 -> 1282[label="",style="solid", color="black", weight=3]; 173.40/119.39 2030[label="signumReal1 (Integer vuz34) (Integer vuz34 > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];2030 -> 2044[label="",style="solid", color="black", weight=3]; 173.40/119.39 2031[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];2031 -> 2045[label="",style="solid", color="black", weight=3]; 173.40/119.39 2041[label="Integer vuz32 `quot` gcd0Gcd' (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2041 -> 2046[label="",style="solid", color="black", weight=3]; 173.40/119.39 2043 -> 331[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2043[label="Integer vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2043 -> 2047[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2042[label="Integer vuz32 `quot` gcd1 vuz115 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5737[label="vuz115/False",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5737[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5737 -> 2048[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5738[label="vuz115/True",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5738[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5738 -> 2049[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2102 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2102[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2103[label="vuz50 `rem` Pos Zero",fontsize=16,color="black",shape="box"];2103 -> 2119[label="",style="solid", color="black", weight=3]; 173.40/119.39 2104[label="gcd0Gcd'1 False vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2104 -> 2120[label="",style="solid", color="black", weight=3]; 173.40/119.39 2105[label="gcd0Gcd'1 True vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2105 -> 2121[label="",style="solid", color="black", weight=3]; 173.40/119.39 1272[label="primDivNatS0 vuz1800 vuz5000 (primGEqNatS vuz1800 vuz5000)",fontsize=16,color="burlywood",shape="box"];5739[label="vuz1800/Succ vuz18000",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5739[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5739 -> 1298[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5740[label="vuz1800/Zero",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5740[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5740 -> 1299[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1273[label="Zero",fontsize=16,color="green",shape="box"];2101 -> 1690[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2101[label="vuz90 `rem` vuz116 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2101 -> 2106[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2101 -> 2107[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1277[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1278[label="vuz30",fontsize=16,color="green",shape="box"];1279[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1280[label="vuz30",fontsize=16,color="green",shape="box"];1281[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1281 -> 1302[label="",style="solid", color="black", weight=3]; 173.40/119.39 1282 -> 1303[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1282[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1282 -> 1304[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2044 -> 2076[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2044[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];2044 -> 2077[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2045[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];2046[label="Integer vuz32 `quot` gcd0Gcd'2 (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2046 -> 2079[label="",style="solid", color="black", weight=3]; 173.40/119.39 2047[label="vuz32",fontsize=16,color="green",shape="box"];2048[label="Integer vuz32 `quot` gcd1 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2048 -> 2080[label="",style="solid", color="black", weight=3]; 173.40/119.39 2049[label="Integer vuz32 `quot` gcd1 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2049 -> 2081[label="",style="solid", color="black", weight=3]; 173.40/119.39 2119[label="primRemInt vuz50 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5741[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5741[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5741 -> 2143[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5742[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5742[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5742 -> 2144[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2120 -> 2055[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2120[label="gcd0Gcd'0 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2120 -> 2145[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2120 -> 2146[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2121[label="vuz116",fontsize=16,color="green",shape="box"];1298[label="primDivNatS0 (Succ vuz18000) vuz5000 (primGEqNatS (Succ vuz18000) vuz5000)",fontsize=16,color="burlywood",shape="box"];5743[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5743[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5743 -> 1321[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5744[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5744[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5744 -> 1322[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1299[label="primDivNatS0 Zero vuz5000 (primGEqNatS Zero vuz5000)",fontsize=16,color="burlywood",shape="box"];5745[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5745[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5745 -> 1323[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5746[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5746[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5746 -> 1324[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2106 -> 338[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2106[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2107[label="vuz90 `rem` vuz116",fontsize=16,color="black",shape="triangle"];2107 -> 2122[label="",style="solid", color="black", weight=3]; 173.40/119.39 1302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1302 -> 1328[label="",style="solid", color="black", weight=3]; 173.40/119.39 1304 -> 151[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1304[label="absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];1304 -> 1329[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1304 -> 1330[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1303[label="Integer vuz59 `quot` gcd1 vuz82 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5747[label="vuz82/False",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5747[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5747 -> 1331[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5748[label="vuz82/True",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5748[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5748 -> 1332[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2077 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2077[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2076[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) vuz117 == GT)",fontsize=16,color="burlywood",shape="triangle"];5749[label="vuz117/Integer vuz1170",fontsize=10,color="white",style="solid",shape="box"];2076 -> 5749[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5749 -> 2082[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2079 -> 2095[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2079[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == fromInt (Pos Zero)) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="magenta"];2079 -> 2096[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2080 -> 2028[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2080[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2081 -> 1360[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2081[label="Integer vuz32 `quot` error []",fontsize=16,color="magenta"];2081 -> 2108[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2143[label="primRemInt (Pos vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2143 -> 2173[label="",style="solid", color="black", weight=3]; 173.40/119.39 2144[label="primRemInt (Neg vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2144 -> 2174[label="",style="solid", color="black", weight=3]; 173.40/119.39 2145[label="vuz116",fontsize=16,color="green",shape="box"];2146 -> 2107[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2146[label="vuz90 `rem` vuz116",fontsize=16,color="magenta"];1321[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS (Succ vuz18000) (Succ vuz50000))",fontsize=16,color="black",shape="box"];1321 -> 1350[label="",style="solid", color="black", weight=3]; 173.40/119.39 1322[label="primDivNatS0 (Succ vuz18000) Zero (primGEqNatS (Succ vuz18000) Zero)",fontsize=16,color="black",shape="box"];1322 -> 1351[label="",style="solid", color="black", weight=3]; 173.40/119.39 1323[label="primDivNatS0 Zero (Succ vuz50000) (primGEqNatS Zero (Succ vuz50000))",fontsize=16,color="black",shape="box"];1323 -> 1352[label="",style="solid", color="black", weight=3]; 173.40/119.39 1324[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1324 -> 1353[label="",style="solid", color="black", weight=3]; 173.40/119.39 2122[label="primRemInt vuz90 vuz116",fontsize=16,color="burlywood",shape="triangle"];5750[label="vuz90/Pos vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5750[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5750 -> 2147[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5751[label="vuz90/Neg vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5751[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5751 -> 2148[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1328 -> 1358[label="",style="solid", color="black", weight=3]; 173.40/119.39 1329[label="vuz37",fontsize=16,color="green",shape="box"];1330[label="vuz37",fontsize=16,color="green",shape="box"];1331[label="Integer vuz59 `quot` gcd1 False (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1331 -> 1359[label="",style="solid", color="black", weight=3]; 173.40/119.39 1332[label="Integer vuz59 `quot` gcd1 True (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1332 -> 1360[label="",style="solid", color="black", weight=3]; 173.40/119.39 2082[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (Integer vuz1170) == GT)",fontsize=16,color="black",shape="box"];2082 -> 2109[label="",style="solid", color="black", weight=3]; 173.40/119.39 2096 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2096[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2095[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == vuz121) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="triangle"];2095 -> 2110[label="",style="solid", color="black", weight=3]; 173.40/119.39 2108[label="vuz32",fontsize=16,color="green",shape="box"];1360[label="Integer vuz59 `quot` error []",fontsize=16,color="black",shape="triangle"];1360 -> 1440[label="",style="solid", color="black", weight=3]; 173.40/119.39 2173 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2173[label="error []",fontsize=16,color="magenta"];2174 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2174[label="error []",fontsize=16,color="magenta"];1350 -> 3385[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1350[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS vuz18000 vuz50000)",fontsize=16,color="magenta"];1350 -> 3386[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1350 -> 3387[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1350 -> 3388[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1350 -> 3389[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1351[label="primDivNatS0 (Succ vuz18000) Zero True",fontsize=16,color="black",shape="box"];1351 -> 1409[label="",style="solid", color="black", weight=3]; 173.40/119.39 1352[label="primDivNatS0 Zero (Succ vuz50000) False",fontsize=16,color="black",shape="box"];1352 -> 1410[label="",style="solid", color="black", weight=3]; 173.40/119.39 1353[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];1353 -> 1411[label="",style="solid", color="black", weight=3]; 173.40/119.39 2147[label="primRemInt (Pos vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5752[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5752[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5752 -> 2175[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5753[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5753[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5753 -> 2176[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2148[label="primRemInt (Neg vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5754[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5754[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5754 -> 2177[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5755[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5755[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5755 -> 2178[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1358[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1358 -> 1438[label="",style="solid", color="black", weight=3]; 173.40/119.39 1359[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1359 -> 1439[label="",style="solid", color="black", weight=3]; 173.40/119.39 2109[label="signumReal1 (Integer vuz34) (primCmpInt vuz34 vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5756[label="vuz34/Pos vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5756[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5756 -> 2123[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5757[label="vuz34/Neg vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5757[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5757 -> 2124[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2110[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal (Integer vuz32))",fontsize=16,color="black",shape="box"];2110 -> 2125[label="",style="solid", color="black", weight=3]; 173.40/119.39 1440[label="error []",fontsize=16,color="red",shape="box"];3386[label="vuz50000",fontsize=16,color="green",shape="box"];3387[label="vuz18000",fontsize=16,color="green",shape="box"];3388[label="vuz18000",fontsize=16,color="green",shape="box"];3389[label="vuz50000",fontsize=16,color="green",shape="box"];3385[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz177 vuz178)",fontsize=16,color="burlywood",shape="triangle"];5758[label="vuz177/Succ vuz1770",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5758[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5758 -> 3426[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5759[label="vuz177/Zero",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5759[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5759 -> 3427[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1409 -> 1468[label="",style="dashed", color="green", weight=3]; 173.40/119.39 1410[label="Zero",fontsize=16,color="green",shape="box"];1411[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1411 -> 1469[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2175[label="primRemInt (Pos vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5760[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5760[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5760 -> 2190[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5761[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5761[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5761 -> 2191[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2176[label="primRemInt (Pos vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5762[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5762[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5762 -> 2192[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5763[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5763[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5763 -> 2193[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2177[label="primRemInt (Neg vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5764[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5764[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5764 -> 2194[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5765[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5765[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5765 -> 2195[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2178[label="primRemInt (Neg vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5766[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5766[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5766 -> 2196[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5767[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5767[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5767 -> 2197[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1438[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1438 -> 1499[label="",style="solid", color="black", weight=3]; 173.40/119.39 1439[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1439 -> 1500[label="",style="solid", color="black", weight=3]; 173.40/119.39 2123[label="signumReal1 (Integer (Pos vuz340)) (primCmpInt (Pos vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5768[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5768[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5768 -> 2149[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5769[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5769[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5769 -> 2150[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2124[label="signumReal1 (Integer (Neg vuz340)) (primCmpInt (Neg vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5770[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5770[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5770 -> 2151[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5771[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5771[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5771 -> 2152[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2125[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal2 (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal2 (Integer vuz32))",fontsize=16,color="black",shape="box"];2125 -> 2153[label="",style="solid", color="black", weight=3]; 173.40/119.39 3426[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) vuz178)",fontsize=16,color="burlywood",shape="box"];5772[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5772[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5772 -> 3455[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5773[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5773[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5773 -> 3456[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3427[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero vuz178)",fontsize=16,color="burlywood",shape="box"];5774[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5774[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5774 -> 3457[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5775[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5775[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5775 -> 3458[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 1468 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1468[label="primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1468 -> 1555[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1468 -> 1556[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1469 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1469[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1469 -> 1557[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1469 -> 1558[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2190[label="primRemInt (Pos vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2190 -> 2244[label="",style="solid", color="black", weight=3]; 173.40/119.39 2191[label="primRemInt (Pos vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2191 -> 2245[label="",style="solid", color="black", weight=3]; 173.40/119.39 2192[label="primRemInt (Pos vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2192 -> 2246[label="",style="solid", color="black", weight=3]; 173.40/119.39 2193[label="primRemInt (Pos vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2193 -> 2247[label="",style="solid", color="black", weight=3]; 173.40/119.39 2194[label="primRemInt (Neg vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2194 -> 2248[label="",style="solid", color="black", weight=3]; 173.40/119.39 2195[label="primRemInt (Neg vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2195 -> 2249[label="",style="solid", color="black", weight=3]; 173.40/119.39 2196[label="primRemInt (Neg vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2196 -> 2250[label="",style="solid", color="black", weight=3]; 173.40/119.39 2197[label="primRemInt (Neg vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2197 -> 2251[label="",style="solid", color="black", weight=3]; 173.40/119.39 1499[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1499 -> 1563[label="",style="solid", color="black", weight=3]; 173.40/119.39 1500[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1500 -> 1564[label="",style="solid", color="black", weight=3]; 173.40/119.39 2149[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5776[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5776[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5776 -> 2179[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5777[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5777[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5777 -> 2180[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2150[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5778[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5778[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5778 -> 2181[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5779[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5779[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5779 -> 2182[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2151[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5780[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5780[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5780 -> 2183[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5781[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5781[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5781 -> 2184[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2152[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5782[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5782[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5782 -> 2185[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5783[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5783[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5783 -> 2186[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2153 -> 2187[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2153[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];2153 -> 2188[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2153 -> 2189[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3455[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) (Succ vuz1780))",fontsize=16,color="black",shape="box"];3455 -> 3507[label="",style="solid", color="black", weight=3]; 173.40/119.39 3456[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) Zero)",fontsize=16,color="black",shape="box"];3456 -> 3508[label="",style="solid", color="black", weight=3]; 173.40/119.39 3457[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero (Succ vuz1780))",fontsize=16,color="black",shape="box"];3457 -> 3509[label="",style="solid", color="black", weight=3]; 173.40/119.39 3458[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3458 -> 3510[label="",style="solid", color="black", weight=3]; 173.40/119.39 1555[label="Zero",fontsize=16,color="green",shape="box"];1556[label="primMinusNatS (Succ vuz18000) Zero",fontsize=16,color="black",shape="triangle"];1556 -> 1710[label="",style="solid", color="black", weight=3]; 173.40/119.39 1557[label="Zero",fontsize=16,color="green",shape="box"];1558[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];1558 -> 1711[label="",style="solid", color="black", weight=3]; 173.40/119.39 2244[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2244 -> 2304[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2245 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2245[label="error []",fontsize=16,color="magenta"];2246[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2246 -> 2305[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2247 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2247[label="error []",fontsize=16,color="magenta"];2248[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2248 -> 2306[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2249 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2249[label="error []",fontsize=16,color="magenta"];2250[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2250 -> 2307[label="",style="dashed", color="green", weight=3]; 173.40/119.39 2251 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2251[label="error []",fontsize=16,color="magenta"];1563[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1563 -> 1759[label="",style="solid", color="black", weight=3]; 173.40/119.39 1564[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1564 -> 1760[label="",style="solid", color="black", weight=3]; 173.40/119.39 2179[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2179 -> 2198[label="",style="solid", color="black", weight=3]; 173.40/119.39 2180[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2180 -> 2199[label="",style="solid", color="black", weight=3]; 173.40/119.39 2181[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5784[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5784[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5784 -> 2200[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5785[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5785[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5785 -> 2201[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2182[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5786[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5786[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5786 -> 2202[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5787[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5787[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5787 -> 2203[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2183[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2183 -> 2204[label="",style="solid", color="black", weight=3]; 173.40/119.39 2184[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2184 -> 2205[label="",style="solid", color="black", weight=3]; 173.40/119.39 2185[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5788[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5788[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5788 -> 2206[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5789[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5789[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5789 -> 2207[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2186[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5790[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5790[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5790 -> 2208[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5791[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5791[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5791 -> 2209[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2188 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2188[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2189 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2189[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2187[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= vuz132) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= vuz131))",fontsize=16,color="black",shape="triangle"];2187 -> 2210[label="",style="solid", color="black", weight=3]; 173.40/119.39 3507 -> 3385[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3507[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz1770 vuz1780)",fontsize=16,color="magenta"];3507 -> 3523[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3507 -> 3524[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3508[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="black",shape="triangle"];3508 -> 3525[label="",style="solid", color="black", weight=3]; 173.40/119.39 3509[label="primDivNatS0 (Succ vuz175) (Succ vuz176) False",fontsize=16,color="black",shape="box"];3509 -> 3526[label="",style="solid", color="black", weight=3]; 173.40/119.39 3510 -> 3508[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3510[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="magenta"];1710[label="Succ vuz18000",fontsize=16,color="green",shape="box"];1711[label="Zero",fontsize=16,color="green",shape="box"];2304[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="burlywood",shape="triangle"];5792[label="vuz900/Succ vuz9000",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5792[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5792 -> 2341[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5793[label="vuz900/Zero",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5793[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5793 -> 2342[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2305 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2305[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2305 -> 2343[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2306 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2306[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2306 -> 2344[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2307 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2307[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2307 -> 2345[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2307 -> 2346[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1759[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1759 -> 1823[label="",style="solid", color="black", weight=3]; 173.40/119.39 1760[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1760 -> 1824[label="",style="solid", color="black", weight=3]; 173.40/119.39 2198 -> 3113[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2198[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpNat (Succ vuz3400) vuz11700 == GT)",fontsize=16,color="magenta"];2198 -> 3114[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2198 -> 3115[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2198 -> 3116[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2199[label="signumReal1 (Integer (Pos (Succ vuz3400))) (GT == GT)",fontsize=16,color="black",shape="triangle"];2199 -> 2254[label="",style="solid", color="black", weight=3]; 173.40/119.39 2200[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2200 -> 2255[label="",style="solid", color="black", weight=3]; 173.40/119.39 2201[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2201 -> 2256[label="",style="solid", color="black", weight=3]; 173.40/119.39 2202[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2202 -> 2257[label="",style="solid", color="black", weight=3]; 173.40/119.39 2203[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2203 -> 2258[label="",style="solid", color="black", weight=3]; 173.40/119.39 2204[label="signumReal1 (Integer (Neg (Succ vuz3400))) (LT == GT)",fontsize=16,color="black",shape="triangle"];2204 -> 2259[label="",style="solid", color="black", weight=3]; 173.40/119.39 2205 -> 3701[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2205[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpNat vuz11700 (Succ vuz3400) == GT)",fontsize=16,color="magenta"];2205 -> 3702[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2205 -> 3703[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2205 -> 3704[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2206[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2206 -> 2262[label="",style="solid", color="black", weight=3]; 173.40/119.39 2207[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2207 -> 2263[label="",style="solid", color="black", weight=3]; 173.40/119.39 2208[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2208 -> 2264[label="",style="solid", color="black", weight=3]; 173.40/119.39 2209[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2209 -> 2265[label="",style="solid", color="black", weight=3]; 173.40/119.39 2210[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT))",fontsize=16,color="black",shape="box"];2210 -> 2266[label="",style="solid", color="black", weight=3]; 173.40/119.39 3523[label="vuz1770",fontsize=16,color="green",shape="box"];3524[label="vuz1780",fontsize=16,color="green",shape="box"];3525[label="Succ (primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176)))",fontsize=16,color="green",shape="box"];3525 -> 3532[label="",style="dashed", color="green", weight=3]; 173.40/119.39 3526[label="Zero",fontsize=16,color="green",shape="box"];2341[label="primModNatS (Succ vuz9000) (Succ vuz11600)",fontsize=16,color="black",shape="box"];2341 -> 2380[label="",style="solid", color="black", weight=3]; 173.40/119.39 2342[label="primModNatS Zero (Succ vuz11600)",fontsize=16,color="black",shape="box"];2342 -> 2381[label="",style="solid", color="black", weight=3]; 173.40/119.39 2343[label="vuz11600",fontsize=16,color="green",shape="box"];2344[label="vuz900",fontsize=16,color="green",shape="box"];2345[label="vuz11600",fontsize=16,color="green",shape="box"];2346[label="vuz900",fontsize=16,color="green",shape="box"];1823[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1823 -> 1891[label="",style="solid", color="black", weight=3]; 173.40/119.39 1824[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1824 -> 1892[label="",style="solid", color="black", weight=3]; 173.40/119.39 3114[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3115[label="vuz3400",fontsize=16,color="green",shape="box"];3116[label="vuz11700",fontsize=16,color="green",shape="box"];3113[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz163 vuz164 == GT)",fontsize=16,color="burlywood",shape="triangle"];5794[label="vuz163/Succ vuz1630",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5794[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5794 -> 3135[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5795[label="vuz163/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5795[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5795 -> 3136[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2254[label="signumReal1 (Integer (Pos (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2254 -> 2310[label="",style="solid", color="black", weight=3]; 173.40/119.39 2255[label="signumReal1 (Integer (Pos Zero)) (primCmpNat Zero (Succ vuz117000) == GT)",fontsize=16,color="black",shape="box"];2255 -> 2311[label="",style="solid", color="black", weight=3]; 173.40/119.39 2256[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2256 -> 2312[label="",style="solid", color="black", weight=3]; 173.40/119.39 2257[label="signumReal1 (Integer (Pos Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2257 -> 2313[label="",style="solid", color="black", weight=3]; 173.40/119.39 2258 -> 2256[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2258[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="magenta"];2259[label="signumReal1 (Integer (Neg (Succ vuz3400))) False",fontsize=16,color="black",shape="triangle"];2259 -> 2314[label="",style="solid", color="black", weight=3]; 173.40/119.39 3702[label="vuz11700",fontsize=16,color="green",shape="box"];3703[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3704[label="vuz3400",fontsize=16,color="green",shape="box"];3701[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz199 vuz200 == GT)",fontsize=16,color="burlywood",shape="triangle"];5796[label="vuz199/Succ vuz1990",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5796[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5796 -> 3732[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5797[label="vuz199/Zero",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5797[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5797 -> 3733[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2262[label="signumReal1 (Integer (Neg Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2262 -> 2317[label="",style="solid", color="black", weight=3]; 173.40/119.39 2263[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2263 -> 2318[label="",style="solid", color="black", weight=3]; 173.40/119.39 2264[label="signumReal1 (Integer (Neg Zero)) (primCmpNat (Succ vuz117000) Zero == GT)",fontsize=16,color="black",shape="box"];2264 -> 2319[label="",style="solid", color="black", weight=3]; 173.40/119.39 2265 -> 2263[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2265[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="magenta"];2266 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2266[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)))",fontsize=16,color="magenta"];2266 -> 2885[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2886[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2887[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2888[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2889[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2890[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2891[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2892[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2266 -> 2893[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3532 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3532[label="primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176))",fontsize=16,color="magenta"];3532 -> 3535[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3532 -> 3536[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2380[label="primModNatS0 vuz9000 vuz11600 (primGEqNatS vuz9000 vuz11600)",fontsize=16,color="burlywood",shape="box"];5798[label="vuz9000/Succ vuz90000",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5798[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5798 -> 2417[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5799[label="vuz9000/Zero",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5799[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5799 -> 2418[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2381[label="Zero",fontsize=16,color="green",shape="box"];1891 -> 2090[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1891[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1891 -> 2091[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1891 -> 2092[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1891 -> 2093[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2111[label="",style="dashed", color="red", weight=0]; 173.40/119.39 1892[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];1892 -> 2112[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2113[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2114[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2115[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2116[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2117[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 1892 -> 2118[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3135[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5800[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5800[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5800 -> 3164[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5801[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5801[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5801 -> 3165[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3136[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5802[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5802[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5802 -> 3166[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5803[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5803[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5803 -> 3167[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2311[label="signumReal1 (Integer (Pos Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2311 -> 2350[label="",style="solid", color="black", weight=3]; 173.40/119.39 2312[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="triangle"];2312 -> 2351[label="",style="solid", color="black", weight=3]; 173.40/119.39 2313[label="signumReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2313 -> 2352[label="",style="solid", color="black", weight=3]; 173.40/119.39 2314[label="signumReal0 (Integer (Neg (Succ vuz3400))) otherwise",fontsize=16,color="black",shape="box"];2314 -> 2353[label="",style="solid", color="black", weight=3]; 173.40/119.39 3732[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5804[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5804[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5804 -> 3752[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5805[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5805[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5805 -> 3753[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3733[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5806[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5806[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5806 -> 3754[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5807[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5807[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5807 -> 3755[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2317[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="triangle"];2317 -> 2356[label="",style="solid", color="black", weight=3]; 173.40/119.39 2318 -> 2317[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2318[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="magenta"];2319[label="signumReal1 (Integer (Neg Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2319 -> 2357[label="",style="solid", color="black", weight=3]; 173.40/119.39 2885[label="vuz32",fontsize=16,color="green",shape="box"];2886[label="vuz121",fontsize=16,color="green",shape="box"];2887[label="vuz32",fontsize=16,color="green",shape="box"];2888[label="vuz32",fontsize=16,color="green",shape="box"];2889[label="vuz109",fontsize=16,color="green",shape="box"];2890[label="vuz32",fontsize=16,color="green",shape="box"];2891[label="vuz32",fontsize=16,color="green",shape="box"];2892[label="vuz132",fontsize=16,color="green",shape="box"];2893[label="vuz132",fontsize=16,color="green",shape="box"];2884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5808[label="vuz120/Integer vuz1200",fontsize=10,color="white",style="solid",shape="box"];2884 -> 5808[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5808 -> 2912[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3535[label="Succ vuz176",fontsize=16,color="green",shape="box"];3536 -> 2954[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3536[label="primMinusNatS (Succ vuz175) (Succ vuz176)",fontsize=16,color="magenta"];3536 -> 3539[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3536 -> 3540[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2417[label="primModNatS0 (Succ vuz90000) vuz11600 (primGEqNatS (Succ vuz90000) vuz11600)",fontsize=16,color="burlywood",shape="box"];5809[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5809[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5809 -> 2457[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5810[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5810[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5810 -> 2458[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2418[label="primModNatS0 Zero vuz11600 (primGEqNatS Zero vuz11600)",fontsize=16,color="burlywood",shape="box"];5811[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5811[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5811 -> 2459[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5812[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5812[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5812 -> 2460[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2091 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2091[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2092 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2092[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2093 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2093[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2090[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2090 -> 2141[label="",style="solid", color="black", weight=3]; 173.40/119.39 2112 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2112[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2113 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2113[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2114 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2114[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2115 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2115[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2116 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2116[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2117 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2117[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2118 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2118[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2111[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT)) >= vuz126) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz128 == LT)) >= vuz125))",fontsize=16,color="black",shape="triangle"];2111 -> 2142[label="",style="solid", color="black", weight=3]; 173.40/119.39 3164[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3164 -> 3223[label="",style="solid", color="black", weight=3]; 173.40/119.39 3165[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) Zero == GT)",fontsize=16,color="black",shape="box"];3165 -> 3224[label="",style="solid", color="black", weight=3]; 173.40/119.39 3166[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3166 -> 3225[label="",style="solid", color="black", weight=3]; 173.40/119.39 3167[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3167 -> 3226[label="",style="solid", color="black", weight=3]; 173.40/119.39 2350 -> 2312[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2350[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="magenta"];2351[label="signumReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];2351 -> 2386[label="",style="solid", color="black", weight=3]; 173.40/119.39 2352 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2352[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2353[label="signumReal0 (Integer (Neg (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2353 -> 2387[label="",style="solid", color="black", weight=3]; 173.40/119.39 3752[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3752 -> 3798[label="",style="solid", color="black", weight=3]; 173.40/119.39 3753[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) Zero == GT)",fontsize=16,color="black",shape="box"];3753 -> 3799[label="",style="solid", color="black", weight=3]; 173.40/119.39 3754[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3754 -> 3800[label="",style="solid", color="black", weight=3]; 173.40/119.39 3755[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3755 -> 3801[label="",style="solid", color="black", weight=3]; 173.40/119.39 2356[label="signumReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];2356 -> 2392[label="",style="solid", color="black", weight=3]; 173.40/119.39 2357[label="signumReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2357 -> 2393[label="",style="solid", color="black", weight=3]; 173.40/119.39 2912[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) (Integer vuz1200) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2912 -> 2955[label="",style="solid", color="black", weight=3]; 173.40/119.39 3539[label="Succ vuz175",fontsize=16,color="green",shape="box"];3540[label="Succ vuz176",fontsize=16,color="green",shape="box"];2954[label="primMinusNatS vuz154 vuz155",fontsize=16,color="burlywood",shape="triangle"];5813[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5813[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5813 -> 2996[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5814[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5814[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5814 -> 2997[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2457[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS (Succ vuz90000) (Succ vuz116000))",fontsize=16,color="black",shape="box"];2457 -> 2508[label="",style="solid", color="black", weight=3]; 173.40/119.39 2458[label="primModNatS0 (Succ vuz90000) Zero (primGEqNatS (Succ vuz90000) Zero)",fontsize=16,color="black",shape="box"];2458 -> 2509[label="",style="solid", color="black", weight=3]; 173.40/119.39 2459[label="primModNatS0 Zero (Succ vuz116000) (primGEqNatS Zero (Succ vuz116000))",fontsize=16,color="black",shape="box"];2459 -> 2510[label="",style="solid", color="black", weight=3]; 173.40/119.39 2460[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2460 -> 2511[label="",style="solid", color="black", weight=3]; 173.40/119.39 2141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5815[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5815[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5815 -> 2170[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5816[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5816[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5816 -> 2171[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT))",fontsize=16,color="black",shape="box"];2142 -> 2172[label="",style="solid", color="black", weight=3]; 173.40/119.39 3223 -> 3113[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3223[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz1630 vuz1640 == GT)",fontsize=16,color="magenta"];3223 -> 3291[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3223 -> 3292[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3224[label="signumReal1 (Integer (Pos (Succ vuz162))) (GT == GT)",fontsize=16,color="black",shape="box"];3224 -> 3293[label="",style="solid", color="black", weight=3]; 173.40/119.39 3225[label="signumReal1 (Integer (Pos (Succ vuz162))) (LT == GT)",fontsize=16,color="black",shape="box"];3225 -> 3294[label="",style="solid", color="black", weight=3]; 173.40/119.39 3226[label="signumReal1 (Integer (Pos (Succ vuz162))) (EQ == GT)",fontsize=16,color="black",shape="box"];3226 -> 3295[label="",style="solid", color="black", weight=3]; 173.40/119.39 2386[label="signumReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2386 -> 2423[label="",style="solid", color="black", weight=3]; 173.40/119.39 3798 -> 3701[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3798[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz1990 vuz2000 == GT)",fontsize=16,color="magenta"];3798 -> 3835[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3798 -> 3836[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3799[label="signumReal1 (Integer (Neg (Succ vuz198))) (GT == GT)",fontsize=16,color="black",shape="box"];3799 -> 3837[label="",style="solid", color="black", weight=3]; 173.40/119.39 3800[label="signumReal1 (Integer (Neg (Succ vuz198))) (LT == GT)",fontsize=16,color="black",shape="box"];3800 -> 3838[label="",style="solid", color="black", weight=3]; 173.40/119.39 3801[label="signumReal1 (Integer (Neg (Succ vuz198))) (EQ == GT)",fontsize=16,color="black",shape="box"];3801 -> 3839[label="",style="solid", color="black", weight=3]; 173.40/119.39 2392[label="signumReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2392 -> 2429[label="",style="solid", color="black", weight=3]; 173.40/119.39 2393 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2393[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2955[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt vuz160 vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt vuz160 vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5817[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5817[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5817 -> 2998[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5818[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5818[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5818 -> 2999[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2996[label="primMinusNatS (Succ vuz1540) vuz155",fontsize=16,color="burlywood",shape="box"];5819[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5819[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5819 -> 3030[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5820[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5820[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5820 -> 3031[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2997[label="primMinusNatS Zero vuz155",fontsize=16,color="burlywood",shape="box"];5821[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5821[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5821 -> 3032[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5822[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5822[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5822 -> 3033[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2508 -> 3575[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2508[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS vuz90000 vuz116000)",fontsize=16,color="magenta"];2508 -> 3576[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2508 -> 3577[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2508 -> 3578[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2508 -> 3579[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2509[label="primModNatS0 (Succ vuz90000) Zero True",fontsize=16,color="black",shape="box"];2509 -> 2570[label="",style="solid", color="black", weight=3]; 173.40/119.39 2510[label="primModNatS0 Zero (Succ vuz116000) False",fontsize=16,color="black",shape="box"];2510 -> 2571[label="",style="solid", color="black", weight=3]; 173.40/119.39 2511[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];2511 -> 2572[label="",style="solid", color="black", weight=3]; 173.40/119.39 2170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5823[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5823[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5823 -> 2328[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5824[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5824[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5824 -> 2329[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5825[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5825[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5825 -> 2330[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5826[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5826[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5826 -> 2331[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5827[label="vuz130/Integer vuz1300",fontsize=10,color="white",style="solid",shape="box"];2172 -> 5827[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5827 -> 2332[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3291[label="vuz1630",fontsize=16,color="green",shape="box"];3292[label="vuz1640",fontsize=16,color="green",shape="box"];3293[label="signumReal1 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3293 -> 3316[label="",style="solid", color="black", weight=3]; 173.40/119.39 3294[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="black",shape="triangle"];3294 -> 3317[label="",style="solid", color="black", weight=3]; 173.40/119.39 3295 -> 3294[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3295[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="magenta"];2423 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2423[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3835[label="vuz1990",fontsize=16,color="green",shape="box"];3836[label="vuz2000",fontsize=16,color="green",shape="box"];3837[label="signumReal1 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3837 -> 3869[label="",style="solid", color="black", weight=3]; 173.40/119.39 3838[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="black",shape="triangle"];3838 -> 3870[label="",style="solid", color="black", weight=3]; 173.40/119.39 3839 -> 3838[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3839[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="magenta"];2429 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2429[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5828[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5828[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5828 -> 3034[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5829[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5829[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5829 -> 3035[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2999[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5830[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5830[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5830 -> 3036[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5831[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5831[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5831 -> 3037[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3030[label="primMinusNatS (Succ vuz1540) (Succ vuz1550)",fontsize=16,color="black",shape="box"];3030 -> 3077[label="",style="solid", color="black", weight=3]; 173.40/119.39 3031[label="primMinusNatS (Succ vuz1540) Zero",fontsize=16,color="black",shape="box"];3031 -> 3078[label="",style="solid", color="black", weight=3]; 173.40/119.39 3032[label="primMinusNatS Zero (Succ vuz1550)",fontsize=16,color="black",shape="box"];3032 -> 3079[label="",style="solid", color="black", weight=3]; 173.40/119.39 3033[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];3033 -> 3080[label="",style="solid", color="black", weight=3]; 173.40/119.39 3576[label="vuz90000",fontsize=16,color="green",shape="box"];3577[label="vuz116000",fontsize=16,color="green",shape="box"];3578[label="vuz90000",fontsize=16,color="green",shape="box"];3579[label="vuz116000",fontsize=16,color="green",shape="box"];3575[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz193 vuz194)",fontsize=16,color="burlywood",shape="triangle"];5832[label="vuz193/Succ vuz1930",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5832[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5832 -> 3608[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5833[label="vuz193/Zero",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5833[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5833 -> 3609[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2570 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2570[label="primModNatS (primMinusNatS (Succ vuz90000) Zero) (Succ Zero)",fontsize=16,color="magenta"];2570 -> 2614[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2570 -> 2615[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2571[label="Succ Zero",fontsize=16,color="green",shape="box"];2572 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2572[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2572 -> 2616[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2572 -> 2617[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2328 -> 2366[label="",style="solid", color="black", weight=3]; 173.40/119.39 2329[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2329 -> 2367[label="",style="solid", color="black", weight=3]; 173.40/119.39 2330[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2330 -> 2368[label="",style="solid", color="black", weight=3]; 173.40/119.39 2331[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2331 -> 2369[label="",style="solid", color="black", weight=3]; 173.40/119.39 2332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2332 -> 2370[label="",style="solid", color="black", weight=3]; 173.40/119.39 3316[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5834[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5834[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5834 -> 3326[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5835[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5835[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5835 -> 3327[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5836[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5836[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5836 -> 3328[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5837[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5837[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5837 -> 3329[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5838[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5838[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5838 -> 3330[label="",style="solid", color="blue", weight=3]; 173.40/119.39 3317[label="signumReal0 (Integer (Pos (Succ vuz162))) otherwise",fontsize=16,color="black",shape="box"];3317 -> 3331[label="",style="solid", color="black", weight=3]; 173.40/119.39 3869[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5839[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5839[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5839 -> 3922[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5840[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5840[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5840 -> 3923[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5841[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5841[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5841 -> 3924[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5842[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5842[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5842 -> 3925[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5843[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5843[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5843 -> 3926[label="",style="solid", color="blue", weight=3]; 173.40/119.39 3870[label="signumReal0 (Integer (Neg (Succ vuz198))) otherwise",fontsize=16,color="black",shape="box"];3870 -> 3927[label="",style="solid", color="black", weight=3]; 173.40/119.39 3034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5844[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5844[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5844 -> 3081[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5845[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5845[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5845 -> 3082[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5846[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5846[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5846 -> 3083[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5847[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5847[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5847 -> 3084[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3036[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5848[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5848[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5848 -> 3085[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5849[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5849[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5849 -> 3086[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3037[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5850[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5850[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5850 -> 3087[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5851[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5851[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5851 -> 3088[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3077 -> 2954[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3077[label="primMinusNatS vuz1540 vuz1550",fontsize=16,color="magenta"];3077 -> 3137[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3077 -> 3138[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3078[label="Succ vuz1540",fontsize=16,color="green",shape="box"];3079[label="Zero",fontsize=16,color="green",shape="box"];3080[label="Zero",fontsize=16,color="green",shape="box"];3608[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) vuz194)",fontsize=16,color="burlywood",shape="box"];5852[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5852[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5852 -> 3627[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5853[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5853[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5853 -> 3628[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3609[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero vuz194)",fontsize=16,color="burlywood",shape="box"];5854[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5854[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5854 -> 3629[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5855[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5855[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5855 -> 3630[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2614[label="Zero",fontsize=16,color="green",shape="box"];2615 -> 1556[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2615[label="primMinusNatS (Succ vuz90000) Zero",fontsize=16,color="magenta"];2615 -> 2655[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2616[label="Zero",fontsize=16,color="green",shape="box"];2617 -> 1558[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2617[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];2366[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2404[label="",style="solid", color="black", weight=3]; 173.40/119.39 2367[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2367 -> 2405[label="",style="solid", color="black", weight=3]; 173.40/119.39 2368[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2368 -> 2406[label="",style="solid", color="black", weight=3]; 173.40/119.39 2369[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2369 -> 2407[label="",style="solid", color="black", weight=3]; 173.40/119.39 2370[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5856[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5856[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5856 -> 2408[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5857[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5857[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5857 -> 2409[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3326 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3326[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3327 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3327[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3328 -> 2453[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3328[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3329 -> 2454[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3329[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3330 -> 2455[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3330[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3331[label="signumReal0 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3331 -> 3369[label="",style="solid", color="black", weight=3]; 173.40/119.39 3922 -> 584[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3922[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3923 -> 2310[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3923[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3924 -> 2453[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3924[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3925 -> 2454[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3925[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3926 -> 2455[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3926[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3927[label="signumReal0 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3927 -> 3970[label="",style="solid", color="black", weight=3]; 173.40/119.39 3081[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3081 -> 3139[label="",style="solid", color="black", weight=3]; 173.40/119.39 3082[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3082 -> 3140[label="",style="solid", color="black", weight=3]; 173.40/119.39 3083[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5858[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5858[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5858 -> 3141[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5859[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5859[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5859 -> 3142[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3084[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5860[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5860[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5860 -> 3143[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5861[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5861[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5861 -> 3144[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3085[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3085 -> 3145[label="",style="solid", color="black", weight=3]; 173.40/119.39 3086[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3086 -> 3146[label="",style="solid", color="black", weight=3]; 173.40/119.39 3087[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5862[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5862[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5862 -> 3147[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5863[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5863[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5863 -> 3148[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3088[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5864[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5864[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5864 -> 3149[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5865[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5865[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5865 -> 3150[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3137[label="vuz1540",fontsize=16,color="green",shape="box"];3138[label="vuz1550",fontsize=16,color="green",shape="box"];3627[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) (Succ vuz1940))",fontsize=16,color="black",shape="box"];3627 -> 3634[label="",style="solid", color="black", weight=3]; 173.40/119.39 3628[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) Zero)",fontsize=16,color="black",shape="box"];3628 -> 3635[label="",style="solid", color="black", weight=3]; 173.40/119.39 3629[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero (Succ vuz1940))",fontsize=16,color="black",shape="box"];3629 -> 3636[label="",style="solid", color="black", weight=3]; 173.40/119.39 3630[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3630 -> 3637[label="",style="solid", color="black", weight=3]; 173.40/119.39 2655[label="vuz90000",fontsize=16,color="green",shape="box"];2404[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2404 -> 2441[label="",style="solid", color="black", weight=3]; 173.40/119.39 2405[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2405 -> 2442[label="",style="solid", color="black", weight=3]; 173.40/119.39 2406[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2406 -> 2443[label="",style="solid", color="black", weight=3]; 173.40/119.39 2407[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2407 -> 2444[label="",style="solid", color="black", weight=3]; 173.40/119.39 2408[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5866[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5866[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5866 -> 2445[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5867[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5867[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5867 -> 2446[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2409[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5868[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5868[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5868 -> 2447[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5869[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5869[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5869 -> 2448[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3369[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5870[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5870[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5870 -> 3376[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5871[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5871[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5871 -> 3377[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5872[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5872[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5872 -> 3378[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5873[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5873[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5873 -> 3379[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5874[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5874[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5874 -> 3380[label="",style="solid", color="blue", weight=3]; 173.40/119.39 3970[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5875[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5875[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5875 -> 4010[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5876[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5876[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5876 -> 4011[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5877[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5877[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5877 -> 4012[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5878[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5878[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5878 -> 4013[label="",style="solid", color="blue", weight=3]; 173.40/119.39 5879[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5879[label="",style="solid", color="blue", weight=9]; 173.40/119.39 5879 -> 4014[label="",style="solid", color="blue", weight=3]; 173.40/119.39 3139[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5880[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5880[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5880 -> 3169[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5881[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5881[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5881 -> 3170[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3140[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];3140 -> 3171[label="",style="solid", color="black", weight=3]; 173.40/119.39 3141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3141 -> 3172[label="",style="solid", color="black", weight=3]; 173.40/119.39 3142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3142 -> 3173[label="",style="solid", color="black", weight=3]; 173.40/119.39 3143[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3143 -> 3174[label="",style="solid", color="black", weight=3]; 173.40/119.39 3144[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3144 -> 3175[label="",style="solid", color="black", weight=3]; 173.40/119.39 3145[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];3145 -> 3176[label="",style="solid", color="black", weight=3]; 173.40/119.39 3146[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5882[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5882[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5882 -> 3177[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5883[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5883[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5883 -> 3178[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3147 -> 3179[label="",style="solid", color="black", weight=3]; 173.40/119.39 3148[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3148 -> 3180[label="",style="solid", color="black", weight=3]; 173.40/119.39 3149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3149 -> 3181[label="",style="solid", color="black", weight=3]; 173.40/119.39 3150[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3150 -> 3182[label="",style="solid", color="black", weight=3]; 173.40/119.39 3634 -> 3575[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3634[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz1930 vuz1940)",fontsize=16,color="magenta"];3634 -> 3675[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3634 -> 3676[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3635[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="black",shape="triangle"];3635 -> 3677[label="",style="solid", color="black", weight=3]; 173.40/119.39 3636[label="primModNatS0 (Succ vuz191) (Succ vuz192) False",fontsize=16,color="black",shape="box"];3636 -> 3678[label="",style="solid", color="black", weight=3]; 173.40/119.39 3637 -> 3635[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3637[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="magenta"];2441[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2441 -> 2486[label="",style="solid", color="black", weight=3]; 173.40/119.39 2442[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2442 -> 2487[label="",style="solid", color="black", weight=3]; 173.40/119.39 2443[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2443 -> 2488[label="",style="solid", color="black", weight=3]; 173.40/119.39 2444[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2444 -> 2489[label="",style="solid", color="black", weight=3]; 173.40/119.39 2445[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5884[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5884[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5884 -> 2490[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5885[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5885[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5885 -> 2491[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2446[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5886[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5886[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5886 -> 2492[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5887[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5887[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5887 -> 2493[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2447[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5888[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5888[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5888 -> 2494[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5889[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5889[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5889 -> 2495[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2448[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5890[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5890[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5890 -> 2496[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5891[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5891[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5891 -> 2497[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3376 -> 711[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3376[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3377 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3377[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3378 -> 2565[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3378[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3379 -> 2566[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3379[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3380 -> 2567[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3380[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4010 -> 711[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4010[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4011 -> 2387[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4011[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4012 -> 2565[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4012[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4013 -> 2566[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4013[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4014 -> 2567[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4014[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3169[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)))",fontsize=16,color="black",shape="box"];3169 -> 3228[label="",style="solid", color="black", weight=3]; 173.40/119.39 3170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) Zero == LT)))",fontsize=16,color="black",shape="box"];3170 -> 3229[label="",style="solid", color="black", weight=3]; 173.40/119.39 3171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="black",shape="triangle"];3171 -> 3230[label="",style="solid", color="black", weight=3]; 173.40/119.39 3172 -> 3146[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz120000) == LT)))",fontsize=16,color="magenta"];3172 -> 3231[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3172 -> 3232[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3173[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];3173 -> 3233[label="",style="solid", color="black", weight=3]; 173.40/119.39 3174 -> 3140[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3174[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3175 -> 3173[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3175[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3176[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not True) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not True))",fontsize=16,color="black",shape="box"];3176 -> 3234[label="",style="solid", color="black", weight=3]; 173.40/119.39 3177[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3177 -> 3235[label="",style="solid", color="black", weight=3]; 173.40/119.39 3178[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3178 -> 3236[label="",style="solid", color="black", weight=3]; 173.40/119.39 3179 -> 3145[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3179[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3180 -> 3173[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3180[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3181 -> 3139[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3181[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) Zero == LT)))",fontsize=16,color="magenta"];3181 -> 3237[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3181 -> 3238[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3182 -> 3173[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3182[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3675[label="vuz1930",fontsize=16,color="green",shape="box"];3676[label="vuz1940",fontsize=16,color="green",shape="box"];3677 -> 2304[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3677[label="primModNatS (primMinusNatS (Succ vuz191) (Succ vuz192)) (Succ (Succ vuz192))",fontsize=16,color="magenta"];3677 -> 3734[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3677 -> 3735[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3678[label="Succ (Succ vuz191)",fontsize=16,color="green",shape="box"];2486[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2486 -> 2543[label="",style="solid", color="black", weight=3]; 173.40/119.39 2487 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2487[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2487 -> 2894[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2487 -> 2895[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2487 -> 2896[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2487 -> 2897[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2488[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2488 -> 2545[label="",style="solid", color="black", weight=3]; 173.40/119.39 2489 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2489[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2489 -> 2898[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2489 -> 2899[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2489 -> 2900[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2489 -> 2901[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2490[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2490 -> 2547[label="",style="solid", color="black", weight=3]; 173.40/119.39 2491[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2491 -> 2548[label="",style="solid", color="black", weight=3]; 173.40/119.39 2492[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5892[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5892[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5892 -> 2549[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5893[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5893[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5893 -> 2550[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2493[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5894[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5894[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5894 -> 2551[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5895[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5895[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5895 -> 2552[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2494[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2494 -> 2553[label="",style="solid", color="black", weight=3]; 173.40/119.39 2495[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2495 -> 2554[label="",style="solid", color="black", weight=3]; 173.40/119.39 2496[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5896[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5896[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5896 -> 2555[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5897[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5897[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5897 -> 2556[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2497[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5898[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5898[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5898 -> 2557[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5899[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5899[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5899 -> 2558[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3228[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz16000 vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz16000 vuz120000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5900[label="vuz16000/Succ vuz160000",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5900[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5900 -> 3301[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5901[label="vuz16000/Zero",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5901[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5901 -> 3302[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3229 -> 3140[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3229[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3230[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) True)",fontsize=16,color="black",shape="box"];3230 -> 3303[label="",style="solid", color="black", weight=3]; 173.40/119.39 3231[label="Zero",fontsize=16,color="green",shape="box"];3232[label="vuz120000",fontsize=16,color="green",shape="box"];3233 -> 3171[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3233[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="magenta"];3234[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) False == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) False)",fontsize=16,color="black",shape="box"];3234 -> 3304[label="",style="solid", color="black", weight=3]; 173.40/119.39 3235 -> 3228[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3235[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz120000 vuz16000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz120000 vuz16000 == LT)))",fontsize=16,color="magenta"];3235 -> 3305[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3235 -> 3306[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3236 -> 3145[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3236[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3237[label="Zero",fontsize=16,color="green",shape="box"];3238[label="vuz120000",fontsize=16,color="green",shape="box"];3734[label="Succ vuz192",fontsize=16,color="green",shape="box"];3735 -> 2954[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3735[label="primMinusNatS (Succ vuz191) (Succ vuz192)",fontsize=16,color="magenta"];3735 -> 3756[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3735 -> 3757[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2543 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2543[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="magenta"];2543 -> 2902[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2543 -> 2903[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2543 -> 2904[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2543 -> 2905[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2894[label="Pos Zero",fontsize=16,color="green",shape="box"];2895[label="Pos Zero",fontsize=16,color="green",shape="box"];2896[label="Pos Zero",fontsize=16,color="green",shape="box"];2897[label="Pos Zero",fontsize=16,color="green",shape="box"];2545[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2545 -> 2729[label="",style="solid", color="black", weight=3]; 173.40/119.39 2898[label="Neg Zero",fontsize=16,color="green",shape="box"];2899[label="Neg Zero",fontsize=16,color="green",shape="box"];2900[label="Neg Zero",fontsize=16,color="green",shape="box"];2901[label="Neg Zero",fontsize=16,color="green",shape="box"];2547 -> 4224[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2547 -> 4225[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4226[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4227[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4228[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4229[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4230[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2547 -> 4231[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2548 -> 2404[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2548[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2548 -> 2733[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2548 -> 2734[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2548 -> 2735[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2549[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2549 -> 2736[label="",style="solid", color="black", weight=3]; 173.40/119.39 2550[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2550 -> 2737[label="",style="solid", color="black", weight=3]; 173.40/119.39 2551[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2551 -> 2738[label="",style="solid", color="black", weight=3]; 173.40/119.39 2552[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2552 -> 2739[label="",style="solid", color="black", weight=3]; 173.40/119.39 2553 -> 2368[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2553[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2553 -> 2740[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2553 -> 2741[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2553 -> 2742[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4336[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2554[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2554 -> 4337[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4338[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4339[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4340[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4341[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4342[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2554 -> 4343[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2555[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2555 -> 2745[label="",style="solid", color="black", weight=3]; 173.40/119.39 2556[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2556 -> 2746[label="",style="solid", color="black", weight=3]; 173.40/119.39 2557[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2557 -> 2747[label="",style="solid", color="black", weight=3]; 173.40/119.39 2558[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2558 -> 2748[label="",style="solid", color="black", weight=3]; 173.40/119.39 3301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5902[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5902[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5902 -> 3318[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5903[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5903[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5903 -> 3319[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5904[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5904[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5904 -> 3320[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5905[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5905[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5905 -> 3321[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3303 -> 3372[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3303[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 == vuz118) (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="magenta"];3303 -> 3373[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3304[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) otherwise == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) otherwise)",fontsize=16,color="black",shape="box"];3304 -> 3323[label="",style="solid", color="black", weight=3]; 173.40/119.39 3305[label="vuz120000",fontsize=16,color="green",shape="box"];3306[label="vuz16000",fontsize=16,color="green",shape="box"];3756[label="Succ vuz191",fontsize=16,color="green",shape="box"];3757[label="Succ vuz192",fontsize=16,color="green",shape="box"];2902[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2903[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2904[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2905[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2729[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2729 -> 2812[label="",style="solid", color="black", weight=3]; 173.40/119.39 4225[label="vuz3700",fontsize=16,color="green",shape="box"];4226[label="vuz59",fontsize=16,color="green",shape="box"];4227[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4228[label="vuz60",fontsize=16,color="green",shape="box"];4229[label="vuz13000",fontsize=16,color="green",shape="box"];4230[label="vuz126",fontsize=16,color="green",shape="box"];4231[label="vuz124",fontsize=16,color="green",shape="box"];4224[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5906[label="vuz208/Succ vuz2080",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5906[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5906 -> 4295[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5907[label="vuz208/Zero",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5907[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5907 -> 4296[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2733[label="vuz124",fontsize=16,color="green",shape="box"];2734[label="vuz126",fontsize=16,color="green",shape="box"];2735[label="vuz126",fontsize=16,color="green",shape="box"];2736[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2736 -> 2817[label="",style="solid", color="black", weight=3]; 173.40/119.39 2737 -> 2367[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2737[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2737 -> 2818[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2737 -> 2819[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2737 -> 2820[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2738[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2738 -> 2821[label="",style="solid", color="black", weight=3]; 173.40/119.39 2739 -> 2367[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2739[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2739 -> 2822[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2739 -> 2823[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2739 -> 2824[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2740[label="vuz124",fontsize=16,color="green",shape="box"];2741[label="vuz126",fontsize=16,color="green",shape="box"];2742[label="vuz126",fontsize=16,color="green",shape="box"];4337[label="vuz126",fontsize=16,color="green",shape="box"];4338[label="vuz124",fontsize=16,color="green",shape="box"];4339[label="vuz59",fontsize=16,color="green",shape="box"];4340[label="vuz60",fontsize=16,color="green",shape="box"];4341[label="vuz13000",fontsize=16,color="green",shape="box"];4342[label="vuz3700",fontsize=16,color="green",shape="box"];4343[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4336[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5908[label="vuz216/Succ vuz2160",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5908[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5908 -> 4407[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5909[label="vuz216/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5909[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5909 -> 4408[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2745[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2745 -> 2827[label="",style="solid", color="black", weight=3]; 173.40/119.39 2746 -> 2369[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2746[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2746 -> 2828[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2746 -> 2829[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2746 -> 2830[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2747[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2747 -> 2831[label="",style="solid", color="black", weight=3]; 173.40/119.39 2748 -> 2369[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2748[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2748 -> 2832[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2748 -> 2833[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2748 -> 2834[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3318[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3318 -> 3332[label="",style="solid", color="black", weight=3]; 173.40/119.39 3319[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) Zero == LT)))",fontsize=16,color="black",shape="box"];3319 -> 3333[label="",style="solid", color="black", weight=3]; 173.40/119.39 3320[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3320 -> 3334[label="",style="solid", color="black", weight=3]; 173.40/119.39 3321[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];3321 -> 3335[label="",style="solid", color="black", weight=3]; 173.40/119.39 3373[label="Integer vuz158 == vuz118",fontsize=16,color="burlywood",shape="triangle"];5910[label="vuz118/Integer vuz1180",fontsize=10,color="white",style="solid",shape="box"];3373 -> 5910[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5910 -> 3381[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3372[label="Integer vuz59 `quot` gcd0Gcd'1 vuz173 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="burlywood",shape="triangle"];5911[label="vuz173/False",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5911[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5911 -> 3382[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5912[label="vuz173/True",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5912[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5912 -> 3383[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3323[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) True)",fontsize=16,color="black",shape="box"];3323 -> 3337[label="",style="solid", color="black", weight=3]; 173.40/119.39 2812 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2812[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz119 == LT)))",fontsize=16,color="magenta"];2812 -> 2906[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2812 -> 2907[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2812 -> 2908[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2812 -> 2909[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4295[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5913[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5913[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5913 -> 4409[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5914[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5914[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5914 -> 4410[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 4296[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5915[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5915[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5915 -> 4411[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5916[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5916[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5916 -> 4412[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2817[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2817 -> 2926[label="",style="solid", color="black", weight=3]; 173.40/119.39 2818[label="vuz124",fontsize=16,color="green",shape="box"];2819[label="vuz126",fontsize=16,color="green",shape="box"];2820[label="vuz126",fontsize=16,color="green",shape="box"];2821 -> 2405[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2821[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2821 -> 2927[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2821 -> 2928[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2821 -> 2929[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2822[label="vuz124",fontsize=16,color="green",shape="box"];2823[label="vuz126",fontsize=16,color="green",shape="box"];2824[label="vuz126",fontsize=16,color="green",shape="box"];4407[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5917[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5917[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5917 -> 4435[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5918[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5918[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5918 -> 4436[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 4408[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5919[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5919[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5919 -> 4437[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5920[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5920[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5920 -> 4438[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 2827[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2827 -> 2935[label="",style="solid", color="black", weight=3]; 173.40/119.39 2828[label="vuz124",fontsize=16,color="green",shape="box"];2829[label="vuz126",fontsize=16,color="green",shape="box"];2830[label="vuz126",fontsize=16,color="green",shape="box"];2831[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2831 -> 2936[label="",style="solid", color="black", weight=3]; 173.40/119.39 2832[label="vuz124",fontsize=16,color="green",shape="box"];2833[label="vuz126",fontsize=16,color="green",shape="box"];2834[label="vuz126",fontsize=16,color="green",shape="box"];3332 -> 3228[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz160000 vuz1200000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz160000 vuz1200000 == LT)))",fontsize=16,color="magenta"];3332 -> 3370[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3332 -> 3371[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3333 -> 3140[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3333[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3334 -> 3145[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3334[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3335 -> 3173[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3335[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3381[label="Integer vuz158 == Integer vuz1180",fontsize=16,color="black",shape="box"];3381 -> 3429[label="",style="solid", color="black", weight=3]; 173.40/119.39 3382[label="Integer vuz59 `quot` gcd0Gcd'1 False (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3382 -> 3430[label="",style="solid", color="black", weight=3]; 173.40/119.39 3383[label="Integer vuz59 `quot` gcd0Gcd'1 True (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3383 -> 3431[label="",style="solid", color="black", weight=3]; 173.40/119.39 3337[label="Integer vuz59 `quot` gcd0Gcd'1 (`negate` Integer vuz158 == vuz118) (abs (Integer vuz60)) (`negate` Integer vuz158)",fontsize=16,color="black",shape="box"];3337 -> 3384[label="",style="solid", color="black", weight=3]; 173.40/119.39 2906 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2906[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2906 -> 2950[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2907 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2907[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2907 -> 2951[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2908 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2908[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2908 -> 2952[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2909 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2909[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2909 -> 2953[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4409[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4409 -> 4439[label="",style="solid", color="black", weight=3]; 173.40/119.39 4410[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4410 -> 4440[label="",style="solid", color="black", weight=3]; 173.40/119.39 4411[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4411 -> 4441[label="",style="solid", color="black", weight=3]; 173.40/119.39 4412[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4412 -> 4442[label="",style="solid", color="black", weight=3]; 173.40/119.39 2926[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2926 -> 2968[label="",style="solid", color="black", weight=3]; 173.40/119.39 2927[label="vuz124",fontsize=16,color="green",shape="box"];2928[label="vuz126",fontsize=16,color="green",shape="box"];2929[label="vuz126",fontsize=16,color="green",shape="box"];4435[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4435 -> 4477[label="",style="solid", color="black", weight=3]; 173.40/119.39 4436[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4436 -> 4478[label="",style="solid", color="black", weight=3]; 173.40/119.39 4437[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4437 -> 4479[label="",style="solid", color="black", weight=3]; 173.40/119.39 4438[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4438 -> 4480[label="",style="solid", color="black", weight=3]; 173.40/119.39 2935[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2935 -> 2973[label="",style="solid", color="black", weight=3]; 173.40/119.39 2936 -> 2407[label="",style="dashed", color="red", weight=0]; 173.40/119.39 2936[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2936 -> 2974[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2936 -> 2975[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2936 -> 2976[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3370[label="vuz160000",fontsize=16,color="green",shape="box"];3371[label="vuz1200000",fontsize=16,color="green",shape="box"];3429 -> 1699[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3429[label="primEqInt vuz158 vuz1180",fontsize=16,color="magenta"];3429 -> 3460[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3429 -> 3461[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3430[label="Integer vuz59 `quot` gcd0Gcd'0 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3430 -> 3462[label="",style="solid", color="black", weight=3]; 173.40/119.39 3431[label="Integer vuz59 `quot` abs (Integer vuz60)",fontsize=16,color="black",shape="box"];3431 -> 3463[label="",style="solid", color="black", weight=3]; 173.40/119.39 3384 -> 3372[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3384[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt vuz158) == vuz118) (abs (Integer vuz60)) (Integer (primNegInt vuz158))",fontsize=16,color="magenta"];3384 -> 3432[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3384 -> 3433[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 2950[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2951[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2952[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2953[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];4439 -> 4224[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4439[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4439 -> 4481[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4439 -> 4482[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 2404[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4440[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4440 -> 4483[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 4484[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 4485[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 4486[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 4487[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4440 -> 4488[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4441[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4441 -> 4489[label="",style="solid", color="black", weight=3]; 173.40/119.39 4442[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4442 -> 4490[label="",style="solid", color="black", weight=3]; 173.40/119.39 2968[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2968 -> 3009[label="",style="solid", color="black", weight=3]; 173.40/119.39 4477 -> 4336[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4477[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4477 -> 4494[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4477 -> 4495[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4478[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4478 -> 4496[label="",style="solid", color="black", weight=3]; 173.40/119.39 4479 -> 2368[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4479[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4479 -> 4497[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4479 -> 4498[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4479 -> 4499[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4479 -> 4500[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4479 -> 4501[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4479 -> 4502[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4480[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4480 -> 4503[label="",style="solid", color="black", weight=3]; 173.40/119.39 2973[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2973 -> 3014[label="",style="solid", color="black", weight=3]; 173.40/119.39 2974[label="vuz124",fontsize=16,color="green",shape="box"];2975[label="vuz126",fontsize=16,color="green",shape="box"];2976[label="vuz126",fontsize=16,color="green",shape="box"];3460[label="vuz1180",fontsize=16,color="green",shape="box"];3461[label="vuz158",fontsize=16,color="green",shape="box"];3462[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3462 -> 3516[label="",style="solid", color="black", weight=3]; 173.40/119.39 3463[label="Integer vuz59 `quot` absReal (Integer vuz60)",fontsize=16,color="black",shape="box"];3463 -> 3517[label="",style="solid", color="black", weight=3]; 173.40/119.39 3432 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3432[label="primNegInt vuz158",fontsize=16,color="magenta"];3432 -> 3464[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3433 -> 3373[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3433[label="Integer (primNegInt vuz158) == vuz118",fontsize=16,color="magenta"];3433 -> 3465[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4481[label="vuz2080",fontsize=16,color="green",shape="box"];4482[label="vuz2090",fontsize=16,color="green",shape="box"];4483[label="vuz211",fontsize=16,color="green",shape="box"];4484[label="vuz212",fontsize=16,color="green",shape="box"];4485[label="vuz206",fontsize=16,color="green",shape="box"];4486[label="vuz207",fontsize=16,color="green",shape="box"];4487[label="vuz210",fontsize=16,color="green",shape="box"];4488[label="vuz210",fontsize=16,color="green",shape="box"];4489[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4489 -> 4504[label="",style="solid", color="black", weight=3]; 173.40/119.39 4490 -> 2441[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4490[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)))",fontsize=16,color="magenta"];4490 -> 4505[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4490 -> 4506[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4490 -> 4507[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4490 -> 4508[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4490 -> 4509[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4490 -> 4510[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3009[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3009 -> 3054[label="",style="solid", color="black", weight=3]; 173.40/119.39 4494[label="vuz2160",fontsize=16,color="green",shape="box"];4495[label="vuz2170",fontsize=16,color="green",shape="box"];4496[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="black",shape="triangle"];4496 -> 4549[label="",style="solid", color="black", weight=3]; 173.40/119.39 4497[label="vuz219",fontsize=16,color="green",shape="box"];4498[label="vuz220",fontsize=16,color="green",shape="box"];4499[label="vuz214",fontsize=16,color="green",shape="box"];4500[label="vuz215",fontsize=16,color="green",shape="box"];4501[label="vuz218",fontsize=16,color="green",shape="box"];4502[label="vuz218",fontsize=16,color="green",shape="box"];4503 -> 4496[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4503[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="magenta"];3014[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3014 -> 3063[label="",style="solid", color="black", weight=3]; 173.40/119.39 3516[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3516 -> 3527[label="",style="solid", color="black", weight=3]; 173.40/119.39 3517[label="Integer vuz59 `quot` absReal2 (Integer vuz60)",fontsize=16,color="black",shape="box"];3517 -> 3528[label="",style="solid", color="black", weight=3]; 173.40/119.39 3464[label="vuz158",fontsize=16,color="green",shape="box"];3465 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3465[label="primNegInt vuz158",fontsize=16,color="magenta"];3465 -> 3518[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4504[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4504 -> 4550[label="",style="solid", color="black", weight=3]; 173.40/119.39 4505[label="vuz211",fontsize=16,color="green",shape="box"];4506[label="vuz212",fontsize=16,color="green",shape="box"];4507[label="vuz206",fontsize=16,color="green",shape="box"];4508[label="vuz207",fontsize=16,color="green",shape="box"];4509[label="vuz210",fontsize=16,color="green",shape="box"];4510[label="vuz210",fontsize=16,color="green",shape="box"];3054[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3054 -> 3106[label="",style="solid", color="black", weight=3]; 173.40/119.39 4549[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4549 -> 4594[label="",style="solid", color="black", weight=3]; 173.40/119.39 3063[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3063 -> 3112[label="",style="solid", color="black", weight=3]; 173.40/119.39 3527 -> 3533[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3527[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == fromInt (Pos Zero)) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="magenta"];3527 -> 3534[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3528 -> 3537[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3528[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];3528 -> 3538[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3518[label="vuz158",fontsize=16,color="green",shape="box"];4550[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4550 -> 4595[label="",style="solid", color="black", weight=3]; 173.40/119.39 3106[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3106 -> 3206[label="",style="solid", color="black", weight=3]; 173.40/119.39 4594 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4594[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)))",fontsize=16,color="magenta"];4594 -> 4620[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4621[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4622[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4623[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4624[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4625[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4626[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4627[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4594 -> 4628[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3112[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3112 -> 3212[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3213[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3214[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3215[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3216[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3217[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3112 -> 3218[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3534 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3534[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3533[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3533 -> 3541[label="",style="solid", color="black", weight=3]; 173.40/119.39 3538 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3538[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3537[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= vuz187)",fontsize=16,color="black",shape="triangle"];3537 -> 3542[label="",style="solid", color="black", weight=3]; 173.40/119.39 4595[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4595 -> 4629[label="",style="solid", color="black", weight=3]; 173.40/119.39 3206 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3206[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3206 -> 3261[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3262[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3263[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3264[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3265[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3266[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3206 -> 3267[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4620[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4621[label="vuz219",fontsize=16,color="green",shape="box"];4622[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4623[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4624[label="vuz220",fontsize=16,color="green",shape="box"];4625[label="vuz214",fontsize=16,color="green",shape="box"];4626[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4627[label="vuz218",fontsize=16,color="green",shape="box"];4628[label="vuz218",fontsize=16,color="green",shape="box"];3212 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3212[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3212 -> 3283[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3213[label="vuz124",fontsize=16,color="green",shape="box"];3214 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3214[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3214 -> 3284[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3215 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3215[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3215 -> 3285[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3216 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3216[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3216 -> 3286[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3217[label="vuz126",fontsize=16,color="green",shape="box"];3218[label="vuz126",fontsize=16,color="green",shape="box"];3541[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3541 -> 3547[label="",style="solid", color="black", weight=3]; 173.40/119.39 3542[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (compare (Integer vuz60) vuz187 /= LT)",fontsize=16,color="black",shape="box"];3542 -> 3548[label="",style="solid", color="black", weight=3]; 173.40/119.39 4629[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4629 -> 4657[label="",style="solid", color="black", weight=3]; 173.40/119.39 3261 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3261[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3261 -> 3348[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3262[label="vuz124",fontsize=16,color="green",shape="box"];3263 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3263[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3263 -> 3349[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3264 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3264[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3264 -> 3350[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3265 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3265[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3265 -> 3351[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3266[label="vuz126",fontsize=16,color="green",shape="box"];3267[label="vuz126",fontsize=16,color="green",shape="box"];3283[label="Neg Zero",fontsize=16,color="green",shape="box"];3284[label="Neg Zero",fontsize=16,color="green",shape="box"];3285[label="Neg Zero",fontsize=16,color="green",shape="box"];3286[label="Neg Zero",fontsize=16,color="green",shape="box"];3547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal2 (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3547 -> 3610[label="",style="solid", color="black", weight=3]; 173.40/119.39 3548[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz187 == LT))",fontsize=16,color="burlywood",shape="box"];5921[label="vuz187/Integer vuz1870",fontsize=10,color="white",style="solid",shape="box"];3548 -> 5921[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5921 -> 3611[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 4657 -> 2884[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4657[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)))",fontsize=16,color="magenta"];4657 -> 4688[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4689[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4690[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4691[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4692[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4693[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4694[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4695[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4657 -> 4696[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3348[label="Pos Zero",fontsize=16,color="green",shape="box"];3349[label="Pos Zero",fontsize=16,color="green",shape="box"];3350[label="Pos Zero",fontsize=16,color="green",shape="box"];3351[label="Pos Zero",fontsize=16,color="green",shape="box"];3610 -> 3631[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3610[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3610 -> 3632[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3610 -> 3633[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3611[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1870) == LT))",fontsize=16,color="black",shape="box"];3611 -> 3638[label="",style="solid", color="black", weight=3]; 173.40/119.39 4688 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4688[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4688 -> 4723[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4689[label="vuz211",fontsize=16,color="green",shape="box"];4690 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4690[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4690 -> 4724[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4691 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4691[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4691 -> 4725[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4692[label="vuz212",fontsize=16,color="green",shape="box"];4693[label="vuz206",fontsize=16,color="green",shape="box"];4694 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.39 4694[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4694 -> 4726[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 4695[label="vuz210",fontsize=16,color="green",shape="box"];4696[label="vuz210",fontsize=16,color="green",shape="box"];3632 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3632[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3633 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3633[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3631[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= vuz196) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= vuz195) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3631 -> 3639[label="",style="solid", color="black", weight=3]; 173.40/119.39 3638[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5922[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5922[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5922 -> 3679[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5923[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5923[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5923 -> 3680[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 4723[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4724[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4725[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4726[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];3639[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3639 -> 3681[label="",style="solid", color="black", weight=3]; 173.40/119.39 3679[label="Integer vuz59 `quot` absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5924[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5924[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5924 -> 3736[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5925[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5925[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5925 -> 3737[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3680[label="Integer vuz59 `quot` absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5926[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5926[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5926 -> 3738[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5927[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5927[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5927 -> 3739[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3681[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5928[label="vuz196/Integer vuz1960",fontsize=10,color="white",style="solid",shape="box"];3681 -> 5928[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5928 -> 3740[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3736[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5929[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5929[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5929 -> 3758[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5930[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5930[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5930 -> 3759[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3737[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5931[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5931[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5931 -> 3760[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5932[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5932[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5932 -> 3761[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3738[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5933[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5933[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5933 -> 3762[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5934[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5934[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5934 -> 3763[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3739[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5935[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5935[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5935 -> 3764[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5936[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5936[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5936 -> 3765[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3740[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3740 -> 3766[label="",style="solid", color="black", weight=3]; 173.40/119.39 3758[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3758 -> 3802[label="",style="solid", color="black", weight=3]; 173.40/119.39 3759[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3759 -> 3803[label="",style="solid", color="black", weight=3]; 173.40/119.39 3760[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5937[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5937[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5937 -> 3804[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5938[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5938[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5938 -> 3805[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3761[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5939[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5939[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5939 -> 3806[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5940[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5940[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5940 -> 3807[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3762[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3762 -> 3808[label="",style="solid", color="black", weight=3]; 173.40/119.39 3763[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3763 -> 3809[label="",style="solid", color="black", weight=3]; 173.40/119.39 3764[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5941[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5941[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5941 -> 3810[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5942[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5942[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5942 -> 3811[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3765[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5943[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5943[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5943 -> 3812[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5944[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5944[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5944 -> 3813[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3766[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5945[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5945[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5945 -> 3814[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 5946[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5946[label="",style="solid", color="burlywood", weight=9]; 173.40/119.39 5946 -> 3815[label="",style="solid", color="burlywood", weight=3]; 173.40/119.39 3802 -> 4994[label="",style="dashed", color="red", weight=0]; 173.40/119.39 3802[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz18700 == LT))",fontsize=16,color="magenta"];3802 -> 4995[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3802 -> 4996[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3802 -> 4997[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3802 -> 4998[label="",style="dashed", color="magenta", weight=3]; 173.40/119.39 3803[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];3803 -> 3842[label="",style="solid", color="black", weight=3]; 173.40/119.39 3804[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3804 -> 3843[label="",style="solid", color="black", weight=3]; 173.40/119.39 3805[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3805 -> 3844[label="",style="solid", color="black", weight=3]; 173.40/119.39 3806[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3806 -> 3845[label="",style="solid", color="black", weight=3]; 173.40/119.39 3807[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3807 -> 3846[label="",style="solid", color="black", weight=3]; 173.40/119.40 3808[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];3808 -> 3847[label="",style="solid", color="black", weight=3]; 173.40/119.40 3809 -> 5039[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3809[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz18700 (Succ vuz6000) == LT))",fontsize=16,color="magenta"];3809 -> 5040[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3809 -> 5041[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3809 -> 5042[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3809 -> 5043[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3810[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3810 -> 3850[label="",style="solid", color="black", weight=3]; 173.40/119.40 3811[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3811 -> 3851[label="",style="solid", color="black", weight=3]; 173.40/119.40 3812[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3812 -> 3852[label="",style="solid", color="black", weight=3]; 173.40/119.40 3813[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3813 -> 3853[label="",style="solid", color="black", weight=3]; 173.40/119.40 3814[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5947[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5947[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5947 -> 3854[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5948[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5948[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5948 -> 3855[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3815[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5949[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5949[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5949 -> 3856[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5950[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5950[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5950 -> 3857[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4995[label="vuz18700",fontsize=16,color="green",shape="box"];4996[label="vuz6000",fontsize=16,color="green",shape="box"];4997[label="Succ vuz6000",fontsize=16,color="green",shape="box"];4998[label="vuz59",fontsize=16,color="green",shape="box"];4994[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz238 vuz239 == LT))",fontsize=16,color="burlywood",shape="triangle"];5951[label="vuz238/Succ vuz2380",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5951[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5951 -> 5035[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5952[label="vuz238/Zero",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5952[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5952 -> 5036[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3842[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not False)",fontsize=16,color="black",shape="triangle"];3842 -> 3873[label="",style="solid", color="black", weight=3]; 173.40/119.40 3843[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz187000) == LT))",fontsize=16,color="black",shape="box"];3843 -> 3874[label="",style="solid", color="black", weight=3]; 173.40/119.40 3844[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3844 -> 3875[label="",style="solid", color="black", weight=3]; 173.40/119.40 3845[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3845 -> 3876[label="",style="solid", color="black", weight=3]; 173.40/119.40 3846 -> 3844[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3846[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3847[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not True)",fontsize=16,color="black",shape="box"];3847 -> 3877[label="",style="solid", color="black", weight=3]; 173.40/119.40 5040[label="vuz18700",fontsize=16,color="green",shape="box"];5041[label="vuz59",fontsize=16,color="green",shape="box"];5042[label="vuz6000",fontsize=16,color="green",shape="box"];5043[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5039[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz243 vuz244 == LT))",fontsize=16,color="burlywood",shape="triangle"];5953[label="vuz243/Succ vuz2430",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5953[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5953 -> 5080[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5954[label="vuz243/Zero",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5954[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5954 -> 5081[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3850[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3850 -> 3880[label="",style="solid", color="black", weight=3]; 173.40/119.40 3851[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3851 -> 3881[label="",style="solid", color="black", weight=3]; 173.40/119.40 3852[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz187000) Zero == LT))",fontsize=16,color="black",shape="box"];3852 -> 3882[label="",style="solid", color="black", weight=3]; 173.40/119.40 3853 -> 3851[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3853[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3854[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5955[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5955[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5955 -> 3883[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5956[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5956[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5956 -> 3884[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3855[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5957[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5957[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5957 -> 3885[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5958[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5958[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5958 -> 3886[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3856[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5959[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5959[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5959 -> 3887[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5960[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5960[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5960 -> 3888[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3857[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5961[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5961[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5961 -> 3889[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5962[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5962[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5962 -> 3890[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5035[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5963[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5963[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5963 -> 5082[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5964[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5964[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5964 -> 5083[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5036[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5965[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5965[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5965 -> 5084[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5966[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5966[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5966 -> 5085[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3873[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3873 -> 3930[label="",style="solid", color="black", weight=3]; 173.40/119.40 3874[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3874 -> 3931[label="",style="solid", color="black", weight=3]; 173.40/119.40 3875[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3875 -> 3932[label="",style="solid", color="black", weight=3]; 173.40/119.40 3876 -> 3875[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3876[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];3877[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) False",fontsize=16,color="black",shape="box"];3877 -> 3933[label="",style="solid", color="black", weight=3]; 173.40/119.40 5080[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5967[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5967[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5967 -> 5101[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5968[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5968[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5968 -> 5102[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5081[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5969[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5969[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5969 -> 5103[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5970[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5970[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5970 -> 5104[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3880[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];3880 -> 3936[label="",style="solid", color="black", weight=3]; 173.40/119.40 3881[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3881 -> 3937[label="",style="solid", color="black", weight=3]; 173.40/119.40 3882[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3882 -> 3938[label="",style="solid", color="black", weight=3]; 173.40/119.40 3883[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3883 -> 3939[label="",style="solid", color="black", weight=3]; 173.40/119.40 3884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3884 -> 3940[label="",style="solid", color="black", weight=3]; 173.40/119.40 3885[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5971[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5971[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5971 -> 3941[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5972[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5972[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5972 -> 3942[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3886[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5973[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5973[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5973 -> 3943[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5974[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5974[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5974 -> 3944[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3887[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3887 -> 3945[label="",style="solid", color="black", weight=3]; 173.40/119.40 3888[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3888 -> 3946[label="",style="solid", color="black", weight=3]; 173.40/119.40 3889[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5975[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5975[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5975 -> 3947[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5976[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5976[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5976 -> 3948[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3890[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5977[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5977[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5977 -> 3949[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5978[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5978[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5978 -> 3950[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5082[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5082 -> 5105[label="",style="solid", color="black", weight=3]; 173.40/119.40 5083[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) Zero == LT))",fontsize=16,color="black",shape="box"];5083 -> 5106[label="",style="solid", color="black", weight=3]; 173.40/119.40 5084[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5084 -> 5107[label="",style="solid", color="black", weight=3]; 173.40/119.40 5085[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5085 -> 5108[label="",style="solid", color="black", weight=3]; 173.40/119.40 3930 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3930[label="Integer vuz59 `quot` Integer (Pos (Succ vuz6000))",fontsize=16,color="magenta"];3930 -> 4131[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3931[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];3931 -> 3976[label="",style="solid", color="black", weight=3]; 173.40/119.40 3932[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];3932 -> 3977[label="",style="solid", color="black", weight=3]; 173.40/119.40 3933[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) otherwise",fontsize=16,color="black",shape="box"];3933 -> 3978[label="",style="solid", color="black", weight=3]; 173.40/119.40 5101[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5101 -> 5123[label="",style="solid", color="black", weight=3]; 173.40/119.40 5102[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) Zero == LT))",fontsize=16,color="black",shape="box"];5102 -> 5124[label="",style="solid", color="black", weight=3]; 173.40/119.40 5103[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5103 -> 5125[label="",style="solid", color="black", weight=3]; 173.40/119.40 5104[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5104 -> 5126[label="",style="solid", color="black", weight=3]; 173.40/119.40 3936[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];3936 -> 3983[label="",style="solid", color="black", weight=3]; 173.40/119.40 3937[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];3937 -> 3984[label="",style="solid", color="black", weight=3]; 173.40/119.40 3938 -> 3881[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3938[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];3939 -> 5153[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3939[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3939 -> 5154[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3939 -> 5155[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3939 -> 5156[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3939 -> 5157[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3939 -> 5158[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3939 -> 5159[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3940[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3940 -> 3987[label="",style="solid", color="black", weight=3]; 173.40/119.40 3941[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3941 -> 3988[label="",style="solid", color="black", weight=3]; 173.40/119.40 3942[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3942 -> 3989[label="",style="solid", color="black", weight=3]; 173.40/119.40 3943[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3943 -> 3990[label="",style="solid", color="black", weight=3]; 173.40/119.40 3944[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3944 -> 3991[label="",style="solid", color="black", weight=3]; 173.40/119.40 3945[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3945 -> 3992[label="",style="solid", color="black", weight=3]; 173.40/119.40 3946 -> 5218[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3946[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3946 -> 5219[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3946 -> 5220[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3946 -> 5221[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3946 -> 5222[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3946 -> 5223[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3946 -> 5224[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3947[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3947 -> 3995[label="",style="solid", color="black", weight=3]; 173.40/119.40 3948[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3948 -> 3996[label="",style="solid", color="black", weight=3]; 173.40/119.40 3949[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3949 -> 3997[label="",style="solid", color="black", weight=3]; 173.40/119.40 3950[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3950 -> 3998[label="",style="solid", color="black", weight=3]; 173.40/119.40 5105 -> 4994[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5105[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz2380 vuz2390 == LT))",fontsize=16,color="magenta"];5105 -> 5127[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5105 -> 5128[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5106 -> 3803[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5106[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (GT == LT))",fontsize=16,color="magenta"];5106 -> 5129[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5106 -> 5130[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5107[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (LT == LT))",fontsize=16,color="black",shape="box"];5107 -> 5131[label="",style="solid", color="black", weight=3]; 173.40/119.40 5108[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5108 -> 5132[label="",style="solid", color="black", weight=3]; 173.40/119.40 4131[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4130[label="Integer vuz59 `quot` Integer vuz201",fontsize=16,color="black",shape="triangle"];4130 -> 4135[label="",style="solid", color="black", weight=3]; 173.40/119.40 3976[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];3976 -> 4020[label="",style="solid", color="black", weight=3]; 173.40/119.40 3977 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3977[label="Integer vuz59 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];3977 -> 4132[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 3978[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3978 -> 4022[label="",style="solid", color="black", weight=3]; 173.40/119.40 5123 -> 5039[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5123[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz2430 vuz2440 == LT))",fontsize=16,color="magenta"];5123 -> 5144[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5123 -> 5145[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5124[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (GT == LT))",fontsize=16,color="black",shape="box"];5124 -> 5146[label="",style="solid", color="black", weight=3]; 173.40/119.40 5125 -> 3808[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5125[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (LT == LT))",fontsize=16,color="magenta"];5125 -> 5147[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5125 -> 5148[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5126[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5126 -> 5149[label="",style="solid", color="black", weight=3]; 173.40/119.40 3983[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];3983 -> 4027[label="",style="solid", color="black", weight=3]; 173.40/119.40 3984 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3984[label="Integer vuz59 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];3984 -> 4133[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5154[label="vuz59",fontsize=16,color="green",shape="box"];5155[label="vuz6000",fontsize=16,color="green",shape="box"];5156[label="vuz158",fontsize=16,color="green",shape="box"];5157[label="vuz186",fontsize=16,color="green",shape="box"];5158[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5159[label="vuz19600",fontsize=16,color="green",shape="box"];5153[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="triangle"];5979[label="vuz248/Succ vuz2480",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5979[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5979 -> 5214[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5980[label="vuz248/Zero",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5980[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5980 -> 5215[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3987[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3987 -> 4031[label="",style="solid", color="black", weight=3]; 173.40/119.40 3988[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3988 -> 4032[label="",style="solid", color="black", weight=3]; 173.40/119.40 3989[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3989 -> 4033[label="",style="solid", color="black", weight=3]; 173.40/119.40 3990[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3990 -> 4034[label="",style="solid", color="black", weight=3]; 173.40/119.40 3991 -> 3989[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3991[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3992[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3992 -> 4035[label="",style="solid", color="black", weight=3]; 173.40/119.40 5219[label="vuz6000",fontsize=16,color="green",shape="box"];5220[label="vuz186",fontsize=16,color="green",shape="box"];5221[label="vuz158",fontsize=16,color="green",shape="box"];5222[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5223[label="vuz59",fontsize=16,color="green",shape="box"];5224[label="vuz19600",fontsize=16,color="green",shape="box"];5218[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="triangle"];5981[label="vuz255/Succ vuz2550",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5981[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5981 -> 5279[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5982[label="vuz255/Zero",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5982[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5982 -> 5280[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 3995[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3995 -> 4038[label="",style="solid", color="black", weight=3]; 173.40/119.40 3996[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3996 -> 4039[label="",style="solid", color="black", weight=3]; 173.40/119.40 3997[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3997 -> 4040[label="",style="solid", color="black", weight=3]; 173.40/119.40 3998 -> 3996[label="",style="dashed", color="red", weight=0]; 173.40/119.40 3998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];5127[label="vuz2390",fontsize=16,color="green",shape="box"];5128[label="vuz2380",fontsize=16,color="green",shape="box"];5129[label="vuz236",fontsize=16,color="green",shape="box"];5130[label="vuz237",fontsize=16,color="green",shape="box"];5131[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not True)",fontsize=16,color="black",shape="box"];5131 -> 5150[label="",style="solid", color="black", weight=3]; 173.40/119.40 5132 -> 3842[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5132[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not False)",fontsize=16,color="magenta"];5132 -> 5151[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5132 -> 5152[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4135[label="Integer (primQuotInt vuz59 vuz201)",fontsize=16,color="green",shape="box"];4135 -> 4174[label="",style="dashed", color="green", weight=3]; 173.40/119.40 4020[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];4020 -> 4079[label="",style="solid", color="black", weight=3]; 173.40/119.40 4132[label="Pos Zero",fontsize=16,color="green",shape="box"];4022[label="Integer vuz59 `quot` (`negate` Integer (Neg (Succ vuz6000)))",fontsize=16,color="black",shape="box"];4022 -> 4081[label="",style="solid", color="black", weight=3]; 173.40/119.40 5144[label="vuz2430",fontsize=16,color="green",shape="box"];5145[label="vuz2440",fontsize=16,color="green",shape="box"];5146[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="black",shape="triangle"];5146 -> 5216[label="",style="solid", color="black", weight=3]; 173.40/119.40 5147[label="vuz242",fontsize=16,color="green",shape="box"];5148[label="vuz241",fontsize=16,color="green",shape="box"];5149 -> 5146[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5149[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="magenta"];4027[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];4027 -> 4087[label="",style="solid", color="black", weight=3]; 173.40/119.40 4133[label="Neg Zero",fontsize=16,color="green",shape="box"];5214[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5983[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5983[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5983 -> 5281[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5984[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5984[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5984 -> 5282[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5215[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5985[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5985[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5985 -> 5283[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5986[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5986[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5986 -> 5284[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4031[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4031 -> 4091[label="",style="solid", color="black", weight=3]; 173.40/119.40 4032[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4032 -> 4092[label="",style="solid", color="black", weight=3]; 173.40/119.40 4033[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4033 -> 4093[label="",style="solid", color="black", weight=3]; 173.40/119.40 4034 -> 4033[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];4035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4035 -> 4094[label="",style="solid", color="black", weight=3]; 173.40/119.40 5279[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5987[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5987[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5987 -> 5287[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5988[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5988[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5988 -> 5288[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5280[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5989[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5989[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5989 -> 5289[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5990[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5990[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5990 -> 5290[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4038[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4038 -> 4097[label="",style="solid", color="black", weight=3]; 173.40/119.40 4039[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4039 -> 4098[label="",style="solid", color="black", weight=3]; 173.40/119.40 4040[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4040 -> 4099[label="",style="solid", color="black", weight=3]; 173.40/119.40 5150[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) False",fontsize=16,color="black",shape="box"];5150 -> 5217[label="",style="solid", color="black", weight=3]; 173.40/119.40 5151[label="vuz236",fontsize=16,color="green",shape="box"];5152[label="vuz237",fontsize=16,color="green",shape="box"];4174[label="primQuotInt vuz59 vuz201",fontsize=16,color="burlywood",shape="box"];5991[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5991[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5991 -> 4188[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5992[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5992[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5992 -> 4189[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4079[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];4079 -> 4127[label="",style="solid", color="black", weight=3]; 173.40/119.40 4081 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4081[label="Integer vuz59 `quot` Integer (primNegInt (Neg (Succ vuz6000)))",fontsize=16,color="magenta"];4081 -> 4134[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5216[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) True",fontsize=16,color="black",shape="box"];5216 -> 5285[label="",style="solid", color="black", weight=3]; 173.40/119.40 4087[label="Integer vuz59 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];4087 -> 4141[label="",style="solid", color="black", weight=3]; 173.40/119.40 5281[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5281 -> 5291[label="",style="solid", color="black", weight=3]; 173.40/119.40 5282[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5282 -> 5292[label="",style="solid", color="black", weight=3]; 173.40/119.40 5283[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5283 -> 5293[label="",style="solid", color="black", weight=3]; 173.40/119.40 5284[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5284 -> 5294[label="",style="solid", color="black", weight=3]; 173.40/119.40 4091 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4091[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4091 -> 4427[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4091 -> 4428[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4092[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4092 -> 4147[label="",style="solid", color="black", weight=3]; 173.40/119.40 4093[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4093 -> 4148[label="",style="solid", color="black", weight=3]; 173.40/119.40 4094[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4094 -> 4149[label="",style="solid", color="black", weight=3]; 173.40/119.40 5287[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5287 -> 5298[label="",style="solid", color="black", weight=3]; 173.40/119.40 5288[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5288 -> 5299[label="",style="solid", color="black", weight=3]; 173.40/119.40 5289[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5289 -> 5300[label="",style="solid", color="black", weight=3]; 173.40/119.40 5290[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5290 -> 5301[label="",style="solid", color="black", weight=3]; 173.40/119.40 4097[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4097 -> 4154[label="",style="solid", color="black", weight=3]; 173.40/119.40 4098[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4098 -> 4155[label="",style="solid", color="black", weight=3]; 173.40/119.40 4099 -> 4039[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4099[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];5217[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) otherwise",fontsize=16,color="black",shape="box"];5217 -> 5286[label="",style="solid", color="black", weight=3]; 173.40/119.40 4188[label="primQuotInt (Pos vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5993[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5993[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5993 -> 4297[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5994[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5994[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5994 -> 4298[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4189[label="primQuotInt (Neg vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5995[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5995[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5995 -> 4299[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5996[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5996[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5996 -> 4300[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4127[label="Integer vuz59 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];4127 -> 4161[label="",style="solid", color="black", weight=3]; 173.40/119.40 4134 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4134[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4134 -> 4162[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5285 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5285[label="Integer vuz241 `quot` Integer (Neg (Succ vuz242))",fontsize=16,color="magenta"];5285 -> 5295[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5285 -> 5296[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4141 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4141[label="Integer vuz59 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];4141 -> 4180[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5291 -> 5153[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5291[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5291 -> 5302[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5291 -> 5303[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5292 -> 3940[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5292[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5292 -> 5304[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5292 -> 5305[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5292 -> 5306[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5292 -> 5307[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5293[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5293 -> 5308[label="",style="solid", color="black", weight=3]; 173.40/119.40 5294[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5294 -> 5309[label="",style="solid", color="black", weight=3]; 173.40/119.40 4427[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4428[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4426[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz222 `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer vuz221 `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4426 -> 4443[label="",style="solid", color="black", weight=3]; 173.40/119.40 4147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4147 -> 4190[label="",style="solid", color="black", weight=3]; 173.40/119.40 4148 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4148[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4148 -> 4429[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4148 -> 4430[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4149 -> 4192[label="",style="solid", color="black", weight=3]; 173.40/119.40 5298 -> 5218[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5298[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5298 -> 5311[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5298 -> 5312[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5299[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5299 -> 5313[label="",style="solid", color="black", weight=3]; 173.40/119.40 5300 -> 3945[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5300[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5300 -> 5314[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5300 -> 5315[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5300 -> 5316[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5300 -> 5317[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5301[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5301 -> 5318[label="",style="solid", color="black", weight=3]; 173.40/119.40 4154[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4154 -> 4197[label="",style="solid", color="black", weight=3]; 173.40/119.40 4155 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4155[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Neg Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4155 -> 4431[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4155 -> 4432[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5286[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) True",fontsize=16,color="black",shape="box"];5286 -> 5297[label="",style="solid", color="black", weight=3]; 173.40/119.40 4297[label="primQuotInt (Pos vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];5997[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5997[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5997 -> 4413[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 5998[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5998[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5998 -> 4414[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4298[label="primQuotInt (Pos vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];5999[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4298 -> 5999[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 5999 -> 4415[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 6000[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4298 -> 6000[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6000 -> 4416[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4299[label="primQuotInt (Neg vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];6001[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6001[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6001 -> 4417[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 6002[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6002[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6002 -> 4418[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4300[label="primQuotInt (Neg vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];6003[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6003[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6003 -> 4419[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 6004[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6004[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6004 -> 4420[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4161 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4161[label="Integer vuz59 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];4161 -> 4205[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4162[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5295[label="vuz241",fontsize=16,color="green",shape="box"];5296[label="Neg (Succ vuz242)",fontsize=16,color="green",shape="box"];4180 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4180[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4180 -> 4212[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5302[label="vuz2480",fontsize=16,color="green",shape="box"];5303[label="vuz2490",fontsize=16,color="green",shape="box"];5304[label="vuz250",fontsize=16,color="green",shape="box"];5305[label="vuz246",fontsize=16,color="green",shape="box"];5306[label="vuz247",fontsize=16,color="green",shape="box"];5307[label="vuz251",fontsize=16,color="green",shape="box"];5308[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5308 -> 5319[label="",style="solid", color="black", weight=3]; 173.40/119.40 5309 -> 3987[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5309[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250)",fontsize=16,color="magenta"];5309 -> 5320[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5309 -> 5321[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5309 -> 5322[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5309 -> 5323[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4443 -> 4491[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4443[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primRemInt vuz222 vuz158) == vuz186) (Integer vuz158) (Integer (primRemInt vuz222 vuz158))",fontsize=16,color="magenta"];4443 -> 4492[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4443 -> 4493[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4190[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4190 -> 4301[label="",style="solid", color="black", weight=3]; 173.40/119.40 4429[label="Pos Zero",fontsize=16,color="green",shape="box"];4430[label="Pos Zero",fontsize=16,color="green",shape="box"];4192[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4192 -> 4304[label="",style="solid", color="black", weight=3]; 173.40/119.40 5311[label="vuz2560",fontsize=16,color="green",shape="box"];5312[label="vuz2550",fontsize=16,color="green",shape="box"];5313[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="black",shape="triangle"];5313 -> 5326[label="",style="solid", color="black", weight=3]; 173.40/119.40 5314[label="vuz257",fontsize=16,color="green",shape="box"];5315[label="vuz254",fontsize=16,color="green",shape="box"];5316[label="vuz253",fontsize=16,color="green",shape="box"];5317[label="vuz258",fontsize=16,color="green",shape="box"];5318 -> 5313[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5318[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="magenta"];4197[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4197 -> 4310[label="",style="solid", color="black", weight=3]; 173.40/119.40 4431[label="Neg Zero",fontsize=16,color="green",shape="box"];4432[label="Neg Zero",fontsize=16,color="green",shape="box"];5297[label="Integer vuz236 `quot` (`negate` Integer (Pos (Succ vuz237)))",fontsize=16,color="black",shape="box"];5297 -> 5310[label="",style="solid", color="black", weight=3]; 173.40/119.40 4413[label="primQuotInt (Pos vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4413 -> 4444[label="",style="solid", color="black", weight=3]; 173.40/119.40 4414[label="primQuotInt (Pos vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4414 -> 4445[label="",style="solid", color="black", weight=3]; 173.40/119.40 4415[label="primQuotInt (Pos vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4415 -> 4446[label="",style="solid", color="black", weight=3]; 173.40/119.40 4416[label="primQuotInt (Pos vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4416 -> 4447[label="",style="solid", color="black", weight=3]; 173.40/119.40 4417[label="primQuotInt (Neg vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4417 -> 4448[label="",style="solid", color="black", weight=3]; 173.40/119.40 4418[label="primQuotInt (Neg vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4418 -> 4449[label="",style="solid", color="black", weight=3]; 173.40/119.40 4419[label="primQuotInt (Neg vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4419 -> 4450[label="",style="solid", color="black", weight=3]; 173.40/119.40 4420[label="primQuotInt (Neg vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4420 -> 4451[label="",style="solid", color="black", weight=3]; 173.40/119.40 4205 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4205[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4205 -> 4320[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4212[label="Neg Zero",fontsize=16,color="green",shape="box"];5319[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5319 -> 5327[label="",style="solid", color="black", weight=3]; 173.40/119.40 5320[label="vuz250",fontsize=16,color="green",shape="box"];5321[label="vuz246",fontsize=16,color="green",shape="box"];5322[label="vuz247",fontsize=16,color="green",shape="box"];5323[label="vuz251",fontsize=16,color="green",shape="box"];4492 -> 2122[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4492[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4492 -> 4511[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4492 -> 4512[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4493 -> 3373[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4493[label="Integer (primRemInt vuz222 vuz158) == vuz186",fontsize=16,color="magenta"];4493 -> 4513[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4493 -> 4514[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4491[label="Integer vuz59 `quot` gcd0Gcd'1 vuz223 (Integer vuz158) (Integer vuz224)",fontsize=16,color="burlywood",shape="triangle"];6005[label="vuz223/False",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6005[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6005 -> 4515[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 6006[label="vuz223/True",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6006[label="",style="solid", color="burlywood", weight=9]; 173.40/119.40 6006 -> 4516[label="",style="solid", color="burlywood", weight=3]; 173.40/119.40 4301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4301 -> 4421[label="",style="solid", color="black", weight=3]; 173.40/119.40 4304 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4304[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="magenta"];4304 -> 4433[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4304 -> 4434[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5326[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5326 -> 5329[label="",style="solid", color="black", weight=3]; 173.40/119.40 4310[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4310 -> 4457[label="",style="solid", color="black", weight=3]; 173.40/119.40 5310 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5310[label="Integer vuz236 `quot` Integer (primNegInt (Pos (Succ vuz237)))",fontsize=16,color="magenta"];5310 -> 5324[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5310 -> 5325[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4444[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4444 -> 4517[label="",style="dashed", color="green", weight=3]; 173.40/119.40 4445 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4445[label="error []",fontsize=16,color="magenta"];4446[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4446 -> 4518[label="",style="dashed", color="green", weight=3]; 173.40/119.40 4447 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4447[label="error []",fontsize=16,color="magenta"];4448[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4448 -> 4519[label="",style="dashed", color="green", weight=3]; 173.40/119.40 4449 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4449[label="error []",fontsize=16,color="magenta"];4450[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4450 -> 4520[label="",style="dashed", color="green", weight=3]; 173.40/119.40 4451 -> 1176[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4451[label="error []",fontsize=16,color="magenta"];4320[label="Pos Zero",fontsize=16,color="green",shape="box"];5327[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5327 -> 5330[label="",style="solid", color="black", weight=3]; 173.40/119.40 4511[label="vuz222",fontsize=16,color="green",shape="box"];4512[label="vuz158",fontsize=16,color="green",shape="box"];4513 -> 2122[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4513[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4513 -> 4551[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4513 -> 4552[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4514[label="vuz186",fontsize=16,color="green",shape="box"];4515[label="Integer vuz59 `quot` gcd0Gcd'1 False (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4515 -> 4553[label="",style="solid", color="black", weight=3]; 173.40/119.40 4516[label="Integer vuz59 `quot` gcd0Gcd'1 True (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4516 -> 4554[label="",style="solid", color="black", weight=3]; 173.40/119.40 4421[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4421 -> 4474[label="",style="solid", color="black", weight=3]; 173.40/119.40 4433 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4433[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4433 -> 4475[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4434 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4434[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4434 -> 4476[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5329 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5329[label="Integer vuz253 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz254)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (Integer (Neg (Succ vuz254)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5329 -> 5331[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5329 -> 5332[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5329 -> 5333[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5329 -> 5334[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5329 -> 5335[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4457 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4457[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4457 -> 4526[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4457 -> 4527[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5324[label="vuz236",fontsize=16,color="green",shape="box"];5325 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5325[label="primNegInt (Pos (Succ vuz237))",fontsize=16,color="magenta"];5325 -> 5328[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4517 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4517[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4517 -> 4555[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4517 -> 4556[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4518 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4518[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4518 -> 4557[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4518 -> 4558[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4519 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4519[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4519 -> 4559[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4519 -> 4560[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4520 -> 1210[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4520[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4520 -> 4561[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4520 -> 4562[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5330[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5330 -> 5336[label="",style="solid", color="black", weight=3]; 173.40/119.40 4551[label="vuz222",fontsize=16,color="green",shape="box"];4552[label="vuz158",fontsize=16,color="green",shape="box"];4553[label="Integer vuz59 `quot` gcd0Gcd'0 (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4553 -> 4596[label="",style="solid", color="black", weight=3]; 173.40/119.40 4554 -> 4130[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4554[label="Integer vuz59 `quot` Integer vuz158",fontsize=16,color="magenta"];4554 -> 4597[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4474 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4474[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4474 -> 4547[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4474 -> 4548[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4475[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];4476[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5331[label="vuz257",fontsize=16,color="green",shape="box"];5332[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5333[label="vuz253",fontsize=16,color="green",shape="box"];5334[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5335[label="vuz258",fontsize=16,color="green",shape="box"];4526 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4526[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4526 -> 4570[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4527 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4527[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4527 -> 4571[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5328[label="Pos (Succ vuz237)",fontsize=16,color="green",shape="box"];4555[label="vuz20100",fontsize=16,color="green",shape="box"];4556[label="vuz590",fontsize=16,color="green",shape="box"];4557[label="vuz20100",fontsize=16,color="green",shape="box"];4558[label="vuz590",fontsize=16,color="green",shape="box"];4559[label="vuz20100",fontsize=16,color="green",shape="box"];4560[label="vuz590",fontsize=16,color="green",shape="box"];4561[label="vuz20100",fontsize=16,color="green",shape="box"];4562[label="vuz590",fontsize=16,color="green",shape="box"];5336[label="Integer vuz246 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5336 -> 5337[label="",style="solid", color="black", weight=3]; 173.40/119.40 4596[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4596 -> 4630[label="",style="solid", color="black", weight=3]; 173.40/119.40 4597[label="vuz158",fontsize=16,color="green",shape="box"];4547 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4547[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4547 -> 4592[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4548 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4548[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4548 -> 4593[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4570[label="Neg Zero",fontsize=16,color="green",shape="box"];4571[label="Neg Zero",fontsize=16,color="green",shape="box"];5337 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5337[label="Integer vuz246 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="magenta"];5337 -> 5338[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5337 -> 5339[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5337 -> 5340[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5337 -> 5341[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5337 -> 5342[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4630[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4630 -> 4658[label="",style="solid", color="black", weight=3]; 173.40/119.40 4592[label="Pos Zero",fontsize=16,color="green",shape="box"];4593[label="Pos Zero",fontsize=16,color="green",shape="box"];5338[label="vuz250",fontsize=16,color="green",shape="box"];5339 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5339[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5339 -> 5343[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5340[label="vuz246",fontsize=16,color="green",shape="box"];5341 -> 471[label="",style="dashed", color="red", weight=0]; 173.40/119.40 5341[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5341 -> 5344[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5342[label="vuz251",fontsize=16,color="green",shape="box"];4658 -> 4426[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4658[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 `rem` Integer vuz224 == fromInt (Pos Zero)) (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="magenta"];4658 -> 4697[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4658 -> 4698[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4658 -> 4699[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 4658 -> 4700[label="",style="dashed", color="magenta", weight=3]; 173.40/119.40 5343[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];5344[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];4697[label="vuz224",fontsize=16,color="green",shape="box"];4698[label="vuz158",fontsize=16,color="green",shape="box"];4699[label="vuz158",fontsize=16,color="green",shape="box"];4700 -> 2031[label="",style="dashed", color="red", weight=0]; 173.40/119.40 4700[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];} 173.40/119.40 173.40/119.40 ---------------------------------------- 173.40/119.40 173.40/119.40 (1311) 173.40/119.40 Obligation: 173.40/119.40 Q DP problem: 173.40/119.40 P is empty. 173.40/119.40 R is empty. 173.40/119.40 Q is empty. 173.40/119.40 We have to consider all (P,Q,R)-chains. 173.40/119.40 ---------------------------------------- 173.40/119.40 173.40/119.40 (1312) PisEmptyProof (EQUIVALENT) 173.40/119.40 The TRS P is empty. Hence, there is no (P,Q,R) chain. 173.40/119.40 ---------------------------------------- 173.40/119.40 173.40/119.40 (1313) 173.40/119.40 YES 173.40/119.43 EOF